onVoid Posted April 28, 2019 Posted April 28, 2019 Alright, I have a block that I am trying to mimic glowstone with. The problem is, the block always has the sound of stone when it breaks and not the glass sound that I want (and I assume this is due to the material of the block not being set). Here is my block's class: public class BlockElementalLight extends BlockBase { public BlockElementalLight() { super("light_elemental", Material.GLASS); setHardness(0.3F); setResistance(1.5F); setLightLevel(1.0F); } public int quantityDroppedWithBonus(int fortune, Random random) { return MathHelper.clamp(this.quantityDropped(random) + random.nextInt(fortune + 1), 1, 4); } public int quantityDropped(Random random) { return 2 + random.nextInt(3); } public Item getItemDropped(IBlockState state, Random rand, int fortune) { return ItemsAdjunct.dustElementalMixture; } public MapColor getMapColor(IBlockState state, IBlockAccess worldIn, BlockPos pos) { return MapColor.ORANGE_STAINED_HARDENED_CLAY; } } Here is the BlockBase class: public class BlockBase extends Block implements IHasModel { public BlockBase(String name, Material material) { super(material); setUnlocalizedName(name); setRegistryName(name); setCreativeTab(CreativeTabsAdjunct.tabAdjunct); } @SideOnly(Side.CLIENT) public void initModel() { ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(this), 0, new ModelResourceLocation(getRegistryName(), "inventory")); } } And here's my blocks class where this is registered public class BlocksAdjunct { @GameRegistry.ObjectHolder("adjunct:light_elemental") public static BlockElementalLight lightElemental; @SideOnly(Side.CLIENT) public static void initModels() { lightElemental.initModel(); } } Thanks. Quote
winnetrie Posted April 28, 2019 Posted April 28, 2019 You can set the blocksound with setSoundType(SoundType.GLASS); Inside the constructor. Where you have your other setters Quote Try out my new Modpack for MC 1.15.2 https://www.curseforge.com/minecraft/modpacks/terran-civilization
DavidM Posted April 28, 2019 Posted April 28, 2019 (edited) Nonononono BlockBase Bad. Do not abuse inheritance just to write less code. IHasModel is also unnecessary. Please read the common problems and suggestion for more info. Edited April 28, 2019 by DavidM 1 Quote Some tips: Spoiler Modder Support: Spoiler 1. Do not follow tutorials on YouTube, especially TechnoVision (previously called Loremaster) and HarryTalks, due to their promotion of bad practice and usage of outdated code. 2. Always post your code. 3. Never copy and paste code. You won't learn anything from doing that. 4. Quote Programming via Eclipse's hotfixes will get you nowhere 5. Learn to use your IDE, especially the debugger. 6. Quote The "picture that's worth 1000 words" only works if there's an obvious problem or a freehand red circle around it. Support & Bug Reports: Spoiler 1. Read the EAQ before asking for help. Remember to provide the appropriate log(s). 2. Versions below 1.11 are no longer supported due to their age. Update to a modern version of Minecraft to receive support.
onVoid Posted April 28, 2019 Author Posted April 28, 2019 28 minutes ago, winnetrie said: You can set the blocksound with setSoundType(SoundType.GLASS); Inside the constructor. Where you have your other setters Thank you. Does it not come with the material anymore? Quote
winnetrie Posted April 29, 2019 Posted April 29, 2019 (edited) 2 hours ago, DavidM said: Nonononono BlockBase Bad. Do not abuse inheritance just to write less code. IHasModel is also unnecessary. Please read the common problems and suggestion for more info. This is true. Just make your class extend Block. You also should not use this IHasModel thing. I bet you are also using a common proxy wich is also bad! Edited April 29, 2019 by winnetrie Quote Try out my new Modpack for MC 1.15.2 https://www.curseforge.com/minecraft/modpacks/terran-civilization
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.