Jump to content

DePhoegon

Members
  • Posts

    55
  • Joined

  • Last visited

Everything posted by DePhoegon

  1. lul, one heck of a modpack Though seriuosly, solve these ' java.io.FileNotFoundException ' issues first. another_furniture mod seems to really use their png in a far worse way than is normal (aka replacing it with a same grid sized purple/black grid. It's really making alot of noise. Though if you're saying it does this to a completed set of mods. after loading for the 2nd time. you might want to triple check that mod list because that's not typical behavior
  2. typically, items that are not registered, & don't exist. Seriously check your resource folder for typos, files named incorrectly, folders, etc. Minecraft is a bit inflexible when it comes to data pack structures. Make no mistake, all mods, ship with datapacks. (we just don't see it that way, but the game does) They are just built into the mods jar, which is accepted because of the loaders (forge, fabric, etc)
  3. Welll, the 1.18.2 event for getting when an entity is removed is ( EntityLeaveWorldEvent ) You need to use the event, to use the enum properly. (though I guess you can use them if ya really want to & get creative enough, in other ways) ----- Just so you know, if you're after livingentities (like mobs, players, & such) dying.. this would be the less optimal way of going about it.
  4. Umm I wouldn't know how to address this, but I will say it sounds like the network call isn't being done async style. Like you're having the local instance call the for data that's so far away (in retrospect) you would need to look at what your doing, where you're calling it from, and what you're accomplishing with it.
  5. lul lul, bad times bro. X} But on serious notes.. the most common side effect from my experience is 2 things. 1. The ' Pack.mcmeta ' has some bad details 2. Some of the Tag files in use have bad data.
  6. I either found an incredibly dumb thing, or a bug in forge public static final Block STRIPPED_DARK_OAK_WOOD = register("stripped_dark_oak_wood", new RotatedPillarBlock(BlockBehaviour.Properties.of(Material.WOOD, MaterialColor.COLOR_BROWN).strength(2.0F).sound(SoundType.WOOD))); public static final Block STRIPPED_MANGROVE_WOOD = register("stripped_mangrove_wood", log(MaterialColor.COLOR_RED, MaterialColor.COLOR_RED)); why exactly is the Stripped_mangrove_wood using log()? when all the others (including non stripped variants) use new RotatedPillarBlock()? This exploded my mod when I came across it, in such a way that just flat out doesn't make sense, and I literally spent time debugging my issue to find... that this stripped Wood was the only one that changed it's behavior.... WHAT?
  7. Just ... Lock this if you kindly would. I got pointed at using 'curseforge' from dependencies (which really should be an upfront resource) & it's just flat out easier. -Yes i was going to use curseforge to spread my mod anyways which was the intent, so this just makes it 100x easier. Good ***** I'm beyond frustrated.. but w/e I'll get over it & just be willing to use cursemaven. Thanks for your time.
  8. It's fairly 'incomplete' because alot of it does feel exactly like guess work. I don't know to get it to spit into the correct format, where to place the files or 'which files'. I don't even know how to get it said files to load correctly, with what appears to be critically mising information about some things seemed to be written up to common sense when it's not mentioned anywhere. I'm going to 'retry' it, because I honestly had forgotten about the mods.toml (but I suspect some missing details about setting up for deobf ) I can tell you what happened, it got added in as a library & I could see the code, but it failed to test the client correctly because a bunch of arrays came back null Like they were not created correctly still had obfuscated names & methods & could not be resolved. OneDrive TS_screenshots folder Pretty damn sure I some how didn't set it up correctly or some how grabbed the wrong files. Every time I attemptted to use fg.deobf, it failed, outright. ============================== Intended target to be made into a dependency I've not git posted the mod that was intended to use it. Though a version of it is on my github. ATM I am just working out and doing what it takes to get it to a functional enough state for a 1.18.2.
  9. I just, want to be clear on the steps. On the project I want to be a dependency for my other project I Use the gradle command [ publish / publishtomavenlocal ] -- I'm having alittle bit of issue finding where it put the files & move/store them on my system for local use. I was able to find build/publish/pom-default.xml & build/libs/zyx.jar file sharing the same timestamps. Just to be clear I link the xml as a new maven in repositories & put the jar file in the ./libs folder? Sorry to be exceptionally confused & confusing about this. It's a hurdle. ----------------------- *Edit I can not seem to get it to be added & load correctly. It will build correctly with my mod, but can not seem to load correctly & I'm flat out not sure what's wrong. All my calls for vanilla blocks are obfuscated & I've array lists that crashing because are coming off as null with the client runs. I honestly need A bit more of a spotlight, I am absolutely failing to see what's going wrong. -- I am trying to download sources (as intellij suggests, but I am not sure that's going to help). I swear I'm losing my mind >.>
  10. I am having some of the most insane bit of trouble setting up dependencies from other mods. I want to be able to use my mod as a base & include it as a resource for other mods I am making. I am flat out having an insane trouble setting it up, much less getting any other mod setup as a dependency. (I am able to get Ones like JEI & Patchouli to work, but they have already set it up so it's REALLY easy with gradle importing) The documentation is a minimium of 4 years out of date & is flat out not valid for current versions of forge gradle projects. The section I would LOVE to actually work because it flat out says how to do exactly what I want done Testing with Existing Mods - Outdated & still included in 1.18.x& 1.19.x - I do feel behind on the 8ball as it where, but the official gradle sources are very general & do not cover what's properly needed (because MC & forge are a bit different), and the forge documents .... require outdated software to run properly & that's assuming newer gradle would run on those versions anyways.
  11. src/main/resources/assets/MODID/blockstates/my_blockstate.json why aren't you using this one? I personally tend to do my own support files, and this location, from within the main folder. Are your other blocks working? also, I don't see the name of the 'block' that you the file is meant to match.
  12. you didn't make the blockstate json. X.x Just because you register a block, doesn't mean Minecraft generates those model & blockstate files.
  13. from how they are structured, it seems they are for a clear separation of tags to prevent any chance of confusion or confliction. I would suggest you poke about and see what the methods in those java classes actually do. Pay attention to how it is done for regular Minecraft stuff now, and how they are called. -- you have to remember that things like small flowers, desert plants, & even 'trees' have tags that are used to allow them to be planted on certain blocks. I likely will have to go over this explicitly, to ensure my sand, sand slabs, & upside down stairs will support the deadbushes, & cacti.. but I am sure you can figure it out. they are used in the code.
  14. the idea is to do checks instead of using a trycatch. an if statement testing if pos is an air block with a sub check to avoid waterlog / fluid (lava/lava) sources around the targeted block to place the fire would be the way to avoid any problems. Minecraft can handle derpy fire (like spawning in mid air & just vanishing after the fact), but being over/near fluid sources can lead to stupidity with how things interact.
  15. of course..... Ok, explain how to fix this & use 'onCaughtFire' without the exceptional derpness of the fire doing things that shouldn't really happen Fire Being Derpy (OneDrive Link) -random tick speed is set at 500 {just to accelerate the process & not have to 'wait' to see if something works } -walls were set to return true as flamable Also, It's unclear.. does the fire spawn before or after 'onCaughtFire' is called? -I will totally use it if it is called before, but I've not a clue how to properly spawn the fireblocks from it as normal, if I override it for use.
  16. I must be dumb tired... but I believe you may need to examine 2 java classes net.minecraft.data.tags -BlockTagsProvider -ItemTagsProvider I believe that the way it was handled got shifted into those classes. I'm sorry for the confusion from me... but I hope it helps.
  17. never is a private method. { private static Boolean never(BlockState p_50779_, BlockGetter p_50780_, BlockPos p_50781_, EntityType<?> p_50782_) { return (boolean)false; } } I am sure you could figure out your own method.. but I'd choose to copy the blockbehavior of a nonspawnable block, and override the attributes to get what I wanted. You could copy the blockbehavior of 'glass' and override the other properties, and thiss will pull the spawning blocking.
  18. Things that goin into inventories, are items, blocks are in world placed. So if you're using a tag file for say crafting/fuel/slot/whatnot, it has to be an item tag. the block tags are for literal inworld use (axe on log, for stripped_log) -log placed world is the block tag use. -axe is the item tag use. -log in inventory, is item tag. == aka, the fuel tag for logs is an item tag [logs_that_burn] to be put into a furnace. {as well as having a matching block tag}
  19. >.> Thank you, I must have been far too exhausted to triple check methods in Level. I actually prefer this one. I will need to take the time to examine what i use, and if there are better methods/calls/whatnot to use. I've just been feeling overrun with typing and typos & have not taken the time it needs to do it.
  20. That method is usable (though the practical side effects will end up causing fireblocks in weird places right next to said blocks. [not bad, but just looks really bad] -this doesn't address floating fire above bottom slab/stairs, & above wall models. Is there a way to allow it to catch fire while preventing ... what amounts to derpy ass behavior from a blank true on a wallblock. -- I can show you what I mean, by the derp behavior. I was also under the impression that disabling firetick/firespread would also disable the isflamable. [this is an assumption by myself, untested] Clarification question, is this method always called even if no fire is spawned, or does fire have to spawn (I'm really trying to avoid ultra derp looks when it comes to fireblocks First to the minor note - I did that first, and it produced a client/server desync (even on a SP world). I just want to be clear, I would need to do this for 42+ different blocks types (and some with multiple states) every tick, on that note... I start to wonder if that's worth the impact hit. -I've not yet put the fences, as I haven't used them yet for even my own blocks. I'm willing to look at it, but I might need some help forming it as I can't seem to see it that way as you are describing.
  21. I do agree, but a few things The 'destroy block' before place is intended to prevent client desync (I can't figure the placing doesn't do it properly) I understand 'IsFlamable' is in fact called only when flame tick 'would hit' the block and is used to trigger flames. - I could not get a grasp on the 'flaming sides' methods used by default. - I also, didn't want things like 'walls/fences/slab/bottom_stairs' to catch on fire on the 'top' of them, as it looks janky as all getup. -- It literally will spawn floating fireblocks (either pixels above the wall/fence, and on stairs), but also in mid-air... I would alter the call and put it in another spot, but as it stands I've not a real idea on how to do that, as 'onCaughtFire' is called when something catches fire, which stairs, walls, fences, do not catch fire like that. My goal is to literally have it 'burnt' and 'replaced', I'm open to suggestions. Though I will need it on the following. - RotatedPillarBlock - Block - StairBlock - SlabBlock - WallBlock - FenceBlock (not inuse yet, but planned for expanding) I would be willing to override the correct function, but I did not understand it enough to attempt. I also would need to solve the whole fire bit of spawning in midair & ontop of other fireblocks) -- I see the limiting of generating fireblocks, on walls, bottom slabs, bottom stairs, fences (future), as a positive, and there is little more then I could do to fix the silliness spawned fireblocks in mid air. (though I have to leave it set to true for rotatedpillarblocks to allow a firespread to hit forests & replace the logs&wood with ash versions in place. I also, don't view this as a problem, as the replacement blocks will 'not' burn in the open world (no point to it). I understand this isn't optimal, but in honesty... I fail to see the problem; all it does is spread up & in truth will overall cause fires to die out with only spots of ash variant blocks replaced around the fire source. I am open to being shown the flaw in it. Though I do wish you well & thank you for letting me know that I didn't entirely fubar my setup for the overrides. I rather not cause more issues than I have to. (I understand doing that will cause some complications with other mods, if they need to touch the blocks in the same way their selves. [in which case, I should produce a compatible mod for things if I want to add it to other packs, and deal with the inconsistency])
  22. I am not 'entirely' sure what you mean, but I'll create a github to share. The phrasing isn't clicking with me. overrideHook java file (where the override blocks are registered) The block registrations used for the overrideHooks is here.
  23. I'm just wanting to make sure that I have The 'Override' done correctly, and I've not missed anything that will cause unforeseen problems. - Why -> I have wood-based blocks that burn & get replaced with 'ash' versions. I want to make sure that [logs, wood, planks, slabs, & stairs] of default Minecraft gets included in that. - If possible, I would rather not override if I could somehow include these blocks into my use of the 'isFlamable' call that I have as an option for my blocks in the lowest levels of my block types (rotatedpillar, stair, slab, block, wall). I am not changing anything about them value wise. The "","","" are tooltips (left blank as to not add to them), and the true is the boolean flag meant to allow the call of a RNG fallcall. (that will destroy, & place the ash correct ash block in the exact same way it was [slabtype/stairtype/etc....]) package com.dephoegon.delbase.block.blockOverride; import com.dephoegon.delbase.aid.block.stock.axisBlock; import com.dephoegon.delbase.aid.block.stock.genBlock; import com.dephoegon.delbase.aid.block.stock.slabBlock; import com.dephoegon.delbase.aid.block.stock.stairBlock; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.*; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; import java.util.function.Supplier; import static net.minecraft.world.level.block.Blocks.*; public class overrideHook { private static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, "minecraft"); private static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, "minecraft"); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_SPRUCE_LOG = register("spruce_log", ()-> new axisBlock(BlockBehaviour.Properties.copy(SPRUCE_LOG).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_SPRUCE_WOOD = register("spruce_wood", ()-> new axisBlock(BlockBehaviour.Properties.copy(SPRUCE_WOOD).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_OAK_LOG = register("oak_log", ()-> new axisBlock(BlockBehaviour.Properties.copy(OAK_LOG).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_OAK_WOOD = register("oak_wood", ()-> new axisBlock(BlockBehaviour.Properties.copy(OAK_WOOD).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_DARK_OAK_LOG = register("dark_oak_log", ()-> new axisBlock(BlockBehaviour.Properties.copy(DARK_OAK_LOG).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_DARK_OAK_WOOD = register("dark_oak_wood", ()-> new axisBlock(BlockBehaviour.Properties.copy(DARK_OAK_WOOD).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_ACACIA_LOG = register("acacia_log", ()-> new axisBlock(BlockBehaviour.Properties.copy(ACACIA_LOG).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_ACACIA_WOOD = register("acacia_wood", ()-> new axisBlock(BlockBehaviour.Properties.copy(ACACIA_WOOD).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_JUNGLE_LOG = register("jungle_log", ()-> new axisBlock(BlockBehaviour.Properties.copy(JUNGLE_LOG).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_JUNGLE_WOOD = register("jungle_wood", ()-> new axisBlock(BlockBehaviour.Properties.copy(JUNGLE_WOOD).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_BIRCH_LOG = register("birch_log", ()-> new axisBlock(BlockBehaviour.Properties.copy(BIRCH_LOG).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_BIRCH_WOOD = register("birch_wood", ()-> new axisBlock(BlockBehaviour.Properties.copy(BIRCH_WOOD).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_STRIPPED_SPRUCE_LOG = register("stripped_spruce_log", ()-> new axisBlock(BlockBehaviour.Properties.copy(STRIPPED_SPRUCE_LOG).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_STRIPPED_SPRUCE_WOOD = register("stripped_spruce_wood", ()-> new axisBlock(BlockBehaviour.Properties.copy(STRIPPED_SPRUCE_WOOD).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_STRIPPED_OAK_LOG = register("stripped_oak_log", ()-> new axisBlock(BlockBehaviour.Properties.copy(STRIPPED_OAK_LOG).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_STRIPPED_OAK_WOOD = register("stripped_oak_wood", ()-> new axisBlock(BlockBehaviour.Properties.copy(STRIPPED_OAK_WOOD).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_STRIPPED_DARK_OAK_LOG = register("stripped_dark_oak_log", ()-> new axisBlock(BlockBehaviour.Properties.copy(STRIPPED_DARK_OAK_LOG).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_STRIPPED_DARK_OAK_WOOD = register("stripped_dark_oak_wood", ()-> new axisBlock(BlockBehaviour.Properties.copy(STRIPPED_DARK_OAK_WOOD).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_STRIPPED_ACACIA_LOG = register("stripped_acacia_log", ()-> new axisBlock(BlockBehaviour.Properties.copy(STRIPPED_ACACIA_LOG).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_STRIPPED_ACACIA_WOOD = register("stripped_acacia_wood", ()-> new axisBlock(BlockBehaviour.Properties.copy(STRIPPED_ACACIA_WOOD).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_STRIPPED_JUNGLE_LOG = register("stripped_jungle_log", ()-> new axisBlock(BlockBehaviour.Properties.copy(STRIPPED_JUNGLE_LOG).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_STRIPPED_JUNGLE_WOOD = register("stripped_jungle_wood", ()-> new axisBlock(BlockBehaviour.Properties.copy(STRIPPED_JUNGLE_WOOD).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_STRIPPED_BIRCH_LOG = register("stripped_birch_log", ()-> new axisBlock(BlockBehaviour.Properties.copy(STRIPPED_BIRCH_LOG).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<RotatedPillarBlock> OVERRIDE_STRIPPED_BIRCH_WOOD = register("stripped_birch_wood", ()-> new axisBlock(BlockBehaviour.Properties.copy(STRIPPED_BIRCH_WOOD).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<Block> OVERRIDE_SPRUCE_PLANKS = register("spruce_planks", ()-> new genBlock(BlockBehaviour.Properties.copy(SPRUCE_PLANKS).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<Block> OVERRIDE_OAK_PLANKS = register("oak_planks", ()-> new genBlock(BlockBehaviour.Properties.copy(OAK_PLANKS).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<Block> OVERRIDE_DARK_OAK_PLANKS = register("dark_oak_planks", ()-> new genBlock(BlockBehaviour.Properties.copy(DARK_OAK_PLANKS).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<Block> OVERRIDE_ACACIA_PLANKS = register("acacia_planks", ()-> new genBlock(BlockBehaviour.Properties.copy(ACACIA_PLANKS).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<Block> OVERRIDE_JUNGLE_PLANKS = register("jungle_planks", ()-> new genBlock(BlockBehaviour.Properties.copy(JUNGLE_PLANKS).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<Block> OVERRIDE_BIRCH_PLANKS = register("birch_planks", ()-> new genBlock(BlockBehaviour.Properties.copy(BIRCH_PLANKS).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<SlabBlock> OVERRIDE_SPRUCE_SLAB = register("spruce_slab", ()-> new slabBlock(BlockBehaviour.Properties.copy(SPRUCE_SLAB).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<SlabBlock> OVERRIDE_OAK_SLAB = register("oak_slab", ()-> new slabBlock(BlockBehaviour.Properties.copy(OAK_SLAB).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<SlabBlock> OVERRIDE_DARK_OAK_SLAB = register("dark_oak_slab", ()-> new slabBlock(BlockBehaviour.Properties.copy(DARK_OAK_SLAB).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<SlabBlock> OVERRIDE_ACACIA_SLAB = register("acacia_slab", ()-> new slabBlock(BlockBehaviour.Properties.copy(ACACIA_SLAB).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<SlabBlock> OVERRIDE_JUNGLE_SLAB = register("jungle_slab", ()-> new slabBlock(BlockBehaviour.Properties.copy(JUNGLE_SLAB).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<SlabBlock> OVERRIDE_BIRCH_SLAB = register("birch_slab", ()-> new slabBlock(BlockBehaviour.Properties.copy(BIRCH_SLAB).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<StairBlock> OVERRIDE_SPRUCE_STAIRS = register("spruce_stairs", ()-> new stairBlock(SPRUCE_STAIRS::defaultBlockState, BlockBehaviour.Properties.copy(SPRUCE_STAIRS).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<StairBlock> OVERRIDE_OAK_STAIRS = register("oak_stairs", ()-> new stairBlock(OAK_STAIRS::defaultBlockState, BlockBehaviour.Properties.copy(OAK_STAIRS).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<StairBlock> OVERRIDE_DARK_OAK_STAIRS = register("dark_oak_stairs", ()-> new stairBlock(DARK_OAK_STAIRS::defaultBlockState, BlockBehaviour.Properties.copy(DARK_OAK_STAIRS).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<StairBlock> OVERRIDE_ACACIA_STAIRS = register("acacia_stairs", ()-> new stairBlock(ACACIA_STAIRS::defaultBlockState, BlockBehaviour.Properties.copy(ACACIA_STAIRS).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<StairBlock> OVERRIDE_JUNGLE_STAIRS = register("jungle_stairs", ()-> new stairBlock(JUNGLE_STAIRS::defaultBlockState, BlockBehaviour.Properties.copy(JUNGLE_STAIRS).sound(SoundType.WOOD),"","","", true)); public static final RegistryObject<StairBlock> OVERRIDE_BIRCH_STAIRS = register("birch_stairs", ()-> new stairBlock(BIRCH_STAIRS::defaultBlockState, BlockBehaviour.Properties.copy(BIRCH_STAIRS).sound(SoundType.WOOD),"","","", true)); public static void register() { IEventBus eventBus = FMLJavaModLoadingContext.get().getModEventBus(); BLOCKS.register(eventBus); ITEMS.register(eventBus); } private static <T extends Block> RegistryObject<T> register(String name, Supplier<T> block) { RegistryObject<T> exit = BLOCKS.register(name, block); ITEMS.register(name, () -> new BlockItem(exit.get(), new Item.Properties().stacksTo(64).tab(CreativeModeTab.TAB_BUILDING_BLOCKS))); return exit; } }
  24. I just recently switched from the beta 1.17.1 to the current release one. I am not getting how to use ToolAction (as it has replaced tooltype) to assign what tool type is needed to break the custom blocks. Where do i put that, and how do you assign the mining level needed? I'm not seeing it and I can't seem to find it via digging through the ida in the project.
  25. It wasn't intended. My surface pro was setup different for the past. I Just thought I would bring it up. I would never think to swap JDKs without 'rebuilding' the project & saving the code before hand. It's .... figitty as hell, but workable. Honestly it's a bit interesting if I am to be honest about it.
×
×
  • Create New...

Important Information

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