Jump to content

Linky132

Members
  • Posts

    33
  • Joined

  • Last visited

Everything posted by Linky132

  1. Alright, thanks for your help. I'm going to have a look at manually applying the knockback.
  2. I'm afraid I'd have no idea where to start with a PR. Are you sure there isn't some other way?
  3. Ah. So is there any alternative or will I have to create a mixin? Or could I apply knockback manually and cancel LivingAttackEvent?
  4. How/where would I set hurtTime?
  5. Hi, I was wondering if anyone could help me. When hit by a certain weapon, I want my custom mob to not flash red and to take less knockback than normal. I'm already cancelling LivingHurtEvent when the damage source is the weapon to make the mob not take damage, but I don't know how to do the other things. If I cancel LivingAttackEvent, it removes the damage, red flash, and knockback, which isn't what I want. Thanks!
  6. Hi, could anyone tell me how to set entity attributes for my custom mob, please? I copied the code that most of the vanilla mobs use, but judging from the log, it doesn't seem to be working. I found this post, but it appears to be out of date. Thanks.
  7. I figured it out. I had the render type set to translucent, when what it should have been on was cutout. Thanks for the help.
  8. I could be wrong, but I think you might need to add this code in the constructor: FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup); And you may need to change the setup method to non-static.
  9. Also, the texture doesn't glitch when the dust is in a straight line, or when it's in its dot form (not the '+' shape).
  10. Unfortunately, that didn't work, it still glitches. Any other ideas?
  11. Hi, I'm trying to make a dust-like block for my mod, so I copied the redstone dust class and assets (don't attack me, I'll change them) to a new class. However, when I place my block in the world, the texture glitches, as if the block is clipping. It's not z fighting, because I raised the model way off the ground and it still glitched. The vanilla redstone dust isn't glitched either. This is what the block looks like: Thanks.
  12. I actually figured it out just before you posted this, but thanks anyway!
  13. Thanks, that actually really helped. I think I've got it now!
  14. I managed to sort it out with some help, but thanks anyway!
  15. Sorry I didn't reply sooner, I was busy. I'm glad you got the problem sorted out. I had a look at the code, but I can't find the new problem, sorry. Oh, and I didn't steal your code, don't worry. Although, I couldn't have used it, since like ChampionAsh said, your code is All Rights Reserved by default.
  16. Hi, I'm trying to make a partly transparent block, but the areas that are supposed to be transparent are just black. Block class: package linky132.waywardcraft.common.block; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.block.material.Material; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; import net.minecraft.state.EnumProperty; import net.minecraft.state.StateContainer; import net.minecraft.state.properties.BlockStateProperties; import net.minecraft.state.properties.RedstoneSide; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.world.IBlockReader; import net.minecraft.world.World; import javax.annotation.Nullable; public class BlockSaltDust extends Block { // Create block properties public static final EnumProperty<RedstoneSide> NORTH = BlockStateProperties.REDSTONE_NORTH; public static final EnumProperty<RedstoneSide> EAST = BlockStateProperties.REDSTONE_EAST; public static final EnumProperty<RedstoneSide> SOUTH = BlockStateProperties.REDSTONE_SOUTH; public static final EnumProperty<RedstoneSide> WEST = BlockStateProperties.REDSTONE_WEST; // Create bounding box shape private static final VoxelShape SHAPE = Block.makeCuboidShape(0.0d, 0.0d, 0.0d, 16.0d, 1.0d, 16.0d); // 1.0d = 1 pixel @Override protected void fillStateContainer(StateContainer.Builder<Block, BlockState> builder) { builder.add(NORTH, EAST, SOUTH, WEST); } public BlockSaltDust(Material material) { // Block constructor super(Properties.create(material).hardnessAndResistance(0.0f, 0.0f)); // Use material provided in the RegistryHandler class and set hardness and resistance this.setDefaultState(this.stateContainer.getBaseState().with(NORTH, RedstoneSide.NONE).with(EAST, RedstoneSide.NONE).with(SOUTH, RedstoneSide.NONE).with(WEST, RedstoneSide.NONE)); // Set the default states for the block } // Apply bounding box shape @Override public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { return SHAPE; } @Override public void onBlockPlacedBy(World worldIn, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack stack) { super.onBlockPlacedBy(worldIn, pos, state, placer, stack); // Check if the block placed was on the north or south side. If it was, set the NORTH and SOUTH properties to SIDE. if (worldIn.getBlockState(pos.offset(Direction.NORTH)).getBlock() != Blocks.AIR || worldIn.getBlockState(pos.offset(Direction.SOUTH)).getBlock() != Blocks.AIR) { worldIn.setBlockState(pos, worldIn.getBlockState(pos).with(NORTH, RedstoneSide.SIDE)); worldIn.setBlockState(pos, worldIn.getBlockState(pos).with(SOUTH, RedstoneSide.SIDE)); } // Check if the block placed was on the east or west side. If it was, set the EAST and WEST properties to SIDE. if (worldIn.getBlockState(pos.offset(Direction.EAST)).getBlock() != Blocks.AIR || worldIn.getBlockState(pos.offset(Direction.WEST)).getBlock() != Blocks.AIR) { worldIn.setBlockState(pos, worldIn.getBlockState(pos).with(EAST, RedstoneSide.SIDE)); worldIn.setBlockState(pos, worldIn.getBlockState(pos).with(WEST, RedstoneSide.SIDE)); } } @Override public void neighborChanged(BlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, boolean isMoving) { super.neighborChanged(state, worldIn, pos, blockIn, fromPos, isMoving); Block adjacentBlock = worldIn.getBlockState(fromPos).getBlock(); // Save neighboring block to variable if (adjacentBlock == Blocks.AIR) { // Check if the neighboring block is air (i.e. if the block next to the salt was destroyed) // Check if the block destroyed was on the north or south side. If it was, set the NORTH and SOUTH properties to NONE. if (pos.offset(Direction.NORTH).equals(fromPos) || pos.offset(Direction.SOUTH).equals(fromPos)) { worldIn.setBlockState(pos, worldIn.getBlockState(pos).with(NORTH, RedstoneSide.NONE)); worldIn.setBlockState(pos, worldIn.getBlockState(pos).with(SOUTH, RedstoneSide.NONE)); } // Check if the block destroyed was on the east or west side. If it was, set the EAST and WEST properties to NONE. if (pos.offset(Direction.EAST).equals(fromPos) || pos.offset(Direction.WEST).equals(fromPos)) { worldIn.setBlockState(pos, worldIn.getBlockState(pos).with(EAST, RedstoneSide.NONE)); worldIn.setBlockState(pos, worldIn.getBlockState(pos).with(WEST, RedstoneSide.NONE)); } } else { // If the neighboring block is anything but air, do this //TODO: Change the else statement to an else if statement and exclude certain blocks that salt shouldn't connect to (e.g. fluids, gases, etc.) // Check if the block placed was on the north or south side. If it was, set the NORTH and SOUTH properties to SIDE. if (pos.offset(Direction.NORTH).equals(fromPos) || pos.offset(Direction.SOUTH).equals(fromPos)) { worldIn.setBlockState(pos, worldIn.getBlockState(pos).with(NORTH, RedstoneSide.SIDE)); worldIn.setBlockState(pos, worldIn.getBlockState(pos).with(SOUTH, RedstoneSide.SIDE)); } // Check if the block placed was on the east or west side. If it was, set the EAST and WEST properties to SIDE. if (pos.offset(Direction.EAST).equals(fromPos) || pos.offset(Direction.WEST).equals(fromPos)) { worldIn.setBlockState(pos, worldIn.getBlockState(pos).with(EAST, RedstoneSide.SIDE)); worldIn.setBlockState(pos, worldIn.getBlockState(pos).with(WEST, RedstoneSide.SIDE)); } } } } Block model: { "ambientocclusion": false, "textures": { "line": "waywardcraft:block/salt_dust", "particle": "waywardcraft:block/salt_dust" }, "elements": [ { "from": [0, 0.25, 0], "to": [16, 0.25, 16], "shade": false, "faces": { "up": {"uv": [0, 0, 16, 16], "texture": "#line"}, "down": {"uv": [0, 0, 16, 16], "texture": "#line"} } } ] } Block texture: https://imgur.com/a/SCKJ5TJ And here's what the block looks like when placed in the game: I'd really appreciate any help. Thanks!
  17. Hi, as you can see, I'm wondering how to upload my project to a Github repository. There are surprisingly few tutorials for this, so does that mean that I literally just upload the entire folder to my repository? I feel like that's not all there is to it, but maybe I'm wrong. Thanks!
  18. Oh, okay, could you post your code, please?
  19. Oh, well the "textures" package still wants to be under assets, although that may not be your problem.
  20. Well, not that I'm an expert, but I think the textures are supposed to be under "resources/assets/modid/textures/item". Obviously replace "modid" with your modid. I could be wrong, though.
  21. Well, it's just a lot to take in, and I'm having trouble figuring out which parts I need. I also don't really want to just copy and paste a bunch of code from another class, since I'm not really going to learn from it. Pretty much all of the code in those classes is confusing to me, and barely makes sense, so I'm not really sure what to do.
  22. Hi, I'm trying to make a dust-like block (think redstone), but I can't figure out how to make the texture connect with the texture of the block next to it. I tried looking at the RedstoneWireBlock and FourWayBlock classes like someone on the Discord server suggested, but I can't really understand them. I can reuse vanilla redstone's blockstate, but I don't know what to put in the block's class itself. If anyone could give me some pointers or something, I'd really appreciate it. Thanks!
  23. That fixed it!! I can finally move on from ore generation! 😂 Thank you so much for your help!!
  24. Sorry, how exactly would I do that?
×
×
  • Create New...

Important Information

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