Search the Community
Showing results for tags 'entities'.
-
I am coding the mod using Intellij community edition with the Adoptium sdk 17 download, all the models i have made using Blockbench, the minecraft version is 1.20.4 and the forge version is 49.0.30. I am trying to make a medieval furnace and i have made the model exceed the 1 block so i have made 3 block models, the medieval furnace thats mentioned previously, the bottom of the furnace that made up the block and the top of the furnace that exceeded the block. I have been following a youtube tutorial by Modding by Kaupenjoe(this is the playlist im following) and he doesnt cover the multiblock function in his tutorial. I have looked to see other solutions but they havent been the right one i have been looking for. I am wanting when the top of the furnace is placed on top and is facing the same direction as the bottom of the furnace and it will let the player interact with the furnace whether they click on the bottom of the furnace or the top of the furnace. Im not entirely sure on what part of my code i should give either im sorry.
-
Hi, I have a scenario where I would like the player to die no-matter-what. Player#die(DamageSource dmgSrc) seemed like the obvious solution, but I couldn't for the life of me figure out why my custom damage source's death message wasn't displaying (I originally had DamageSource.GENERIC as a placeholder). Then I realised that it didn't matter what DamageSource I put, #die always gave the generic death message. The next most obvious solution is to just hurt the player for a ridiculous amount of damage that bypasses armor, invulnerability, and magic, but that doesn't feel very neat. I was wondering if anyone had any suggestions on a better way. In a modded environment one doesn't always know what ridiculous things have been done with the player's health, so it's hard to know what level of silliness the damage number should possess. I'll leave it with the hurt solution in the mean time.
-
I made a projectile extending the AbstractHurtingProjectile class. The relevant code and video showing the error are shown below. I want my projectile to be able to pass through blocks and hit multiple entities, it should only despawn after a certain amount of time. For some reason, it does not hit entities in the situations shown below. It can't hit the bottom of the entity if there are blocks in the way, even though the projectile has been shown to damage an entity through blocks as long as I aim body level. Also, it can't hit entities through blocks if I shoot from above or below. Why is my projectile behaving like this? I am at my wit's end. (Ignore the chat I put that there for debugging purposes) Video demonstrating issues Class that defines projectile behavior: Item class that shoots projectile when right-clicked (lines 37 and 53-56 are the relevant ones): Class where I register the projectile entity:
-
sorry,i found the issues just some stupid reasons. but idont know how to delete the post
-
I am adding in an entity identical to the Creeper. I have an Idle animation, a Running animation, and a Walking animation. At the moment, the Idle and Walk animations are conflicting whenever it stands still, causing a jittery movement. Though I followed the Minecraft modding course by KaupenJoe to a tee, my animations seem to conflict with the code which Kaupen wrote. - I would like to implement the walk animation to only play when it is randomly walking. - I would like to implement the Idle animation only when it is idle, standing still. - I would like to implement the running animation to play when the creeper is targeting another entity, because it speeds up in movement. Any help is appreciated! Here is a gist of my current Model.java. Let me know if you need any more info! Thank you in advance.
-
Hello, guys! I'm creating a mod that includes a machine. This machine has 4 slots: 2 input slots and 2 output slots. For this machine to work, it needs two things: 2 valid items in the input slots, and it requires that the player clicks on the "uncraft" button in the center of the GUI. Then the progress will start. However, I'm not able to make the block entity understand that the button was clicked on the client side. Does anybody know how to implement a GUI button that updates a block entity variable? This is my project: https://github.com/jujulioed/Dukas_Utilities_Mod (in this version, the button interaction was not implemented yet.)
-
I have a block with entity block which should emit redstone signal if there's a player nearby. I have a POWER property that represents the redstone signal power, it's updated from the block entity tick and I do update the blockstate and notify neighbors about it (if I do it in a right way, I'm new to modding in Minecraft :D) According to what I see from some debugging, ticks actually happen and property actually changes its value (I didn't test that from the block code though, only in the block entity code) but redstone signal doesn't change. Here's my block code: package net.mabutingtao.fadinglight.block; import net.mabutingtao.fadinglight.init.MyBlockEntityRegistry; import net.mabutingtao.fadinglight.util.TickableBlockEntity; import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.IntegerProperty; import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.level.storage.loot.LootParams; import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.item.ItemStack; import net.minecraft.network.chat.Component; import net.minecraft.core.Direction; import net.minecraft.core.BlockPos; import java.util.List; import java.util.Collections; import java.util.ArrayList; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.Level; import java.util.Random; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.EntityBlock; import javax.annotation.Nullable; import net.minecraft.world.level.block.RenderShape; public class SoulSensorBlock extends Block implements EntityBlock { public static final IntegerProperty POWER = IntegerProperty.create("power", 0, 15); public SoulSensorBlock() { super(Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.STONE).strength(1f, 10f).noOcclusion().isRedstoneConductor((bs, br, bp) -> true)); this.registerDefaultState(((BlockState) this.stateDefinition.any()).setValue(POWER, 15)); } protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) { builder.add(POWER); } @Nullable @Override public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { return MyBlockEntityRegistry.SOUL_SENSOR.get().create(pos, state); } @org.jetbrains.annotations.Nullable @Override public <T extends BlockEntity> BlockEntityTicker<T> getTicker(Level level, BlockState state, BlockEntityType<T> type) { return TickableBlockEntity.getTickerHelper(level); } @Override public boolean triggerEvent(BlockState state, Level world, BlockPos pos, int eventID, int eventParam) { super.triggerEvent(state, world, pos, eventID, eventParam); BlockEntity blockEntity = world.getBlockEntity(pos); return blockEntity == null ? false : blockEntity.triggerEvent(eventID, eventParam); } @Override public void onPlace(BlockState state, Level level, BlockPos pos, BlockState state1, boolean b) { Direction[] directions = Direction.values(); for (Direction direction : directions) { level.updateNeighborsAt(pos.relative(direction), this); } } @Override public void onRemove(BlockState state, Level level, BlockPos pos, BlockState state1, boolean b) { if (!b) { Direction[] directions = Direction.values(); for (Direction direction : directions) { level.updateNeighborsAt(pos.relative(direction), this); } } } @Override public void appendHoverText(ItemStack itemstack, BlockGetter world, List<Component> list, TooltipFlag flag) { super.appendHoverText(itemstack, world, list, flag); } @Override public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) { return 15; } @Override public VoxelShape getVisualShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) { return Shapes.empty(); } @Override public boolean isSignalSource(BlockState state) { return true; } @Override public int getSignal(BlockState blockstate, BlockGetter blockAccess, BlockPos pos, Direction direction) { return blockstate.getValue(POWER); } @Override public int getDirectSignal(BlockState blockstate, BlockGetter blockAccess, BlockPos pos, Direction direction) { return blockstate.getValue(POWER); } @Override public boolean canConnectRedstone(BlockState state, BlockGetter world, BlockPos pos, Direction side) { return true; } @Override public List<ItemStack> getDrops(BlockState state, LootParams.Builder builder) { List<ItemStack> dropsOriginal = super.getDrops(state, builder); if (!dropsOriginal.isEmpty()) return dropsOriginal; return Collections.singletonList(new ItemStack(this, 1)); } } And here's the code of block entity: package net.mabutingtao.fadinglight.block; import net.mabutingtao.fadinglight.init.*; import net.mabutingtao.fadinglight.init.MyBlockEntityRegistry; import net.mabutingtao.fadinglight.util.TickableBlockEntity; import net.minecraft.core.Direction; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.*; import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.phys.Vec3; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.event.server.ServerStartingEvent; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.Dist; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraftforge.registries.RegistryObject; import net.minecraft.core.Registry; public class SoulSensorEntityBlock extends BlockEntity implements TickableBlockEntity { private int last_output = 0; public SoulSensorEntityBlock(BlockPos pos, BlockState state) { super(MyBlockEntityRegistry.SOUL_SENSOR.get(), pos, state); } public void tick() { Level level = this.getLevel(); BlockPos pos = this.getBlockPos(); BlockState state = this.getBlockState(); int output = 0; if (isPlayerNearby(level, pos, 4)) { output = 15; } if (output != last_output) { level.setBlockAndUpdate(pos, state.setValue(SoulSensorBlock.POWER, output)); this.updateNeighbours(state, level, pos); } last_output = output; } private void updateNeighbours(BlockState state, Level level, BlockPos pos) { level.updateNeighborsAt(pos, state.getBlock()); Direction[] directions = Direction.values(); for (Direction direction : directions) { level.updateNeighborsAt(pos.relative(direction), state.getBlock()); } } private boolean isPlayerNearby(Level level, BlockPos pos, double distance) { for (Player player : level.players()) { if (player.distanceToSqr(Vec3.atCenterOf(pos)) <= distance) return true; } return false; } } Thanks in advance for help.
-
How to make an entity have a short animation when an event is triggered?
-
Topic for making tags
-
- 1.10.2
- 1.11.2
-
(and 81 more)
Tagged with:
- 1.10.2
- 1.11.2
- 1.12.2
- 1.13.2
- 1.14.4
- 1.15.2
- 1.16.5
- 1.17.1
- 1.18.2
- 1.19.0
- 1.19.1
- 1.19.2
- 1.19.3
- 1.19.4
- 1.2.5
- 1.20.0
- 1.3.2
- 1.4.7
- 1.5.2
- 1.6.4
- 1.7.10
- 1.8.9
- 1.9.4
- armour
- bad jvm args
- biomes
- blocks
- broken mod
- bug
- capabilities
- client
- client-only mods on server
- codecs
- commands
- dimensions
- effects
- enchantments
- entities
- events
- feature request
- fluids
- food
- gradle
- groovy
- guis
- ide
- installer
- items
- java
- kotlin
- launcher
- libraries
- loot
- metadata
- missing jar association
- missing java
- missing mods
- mixin
- needs more info
- networking
- news
- optifine
- ores
- out of memory
- outdated drivers
- particles
- performance
- porting
- potions
- recipes
- registries
- rendering
- scala
- server
- solved
- sounds
- textures
- tools
- tutorial
- weapons
- worldgen
- wrong java version
- wrong mod version
-
1.20.1 1.20.1 Can someone help me about the model of new entity.
弗洛 徐 posted a topic in Modder Support
Project https://github.com/PositiveEStudio/undergroundfire I register the entity, model and renderer, but I find model has not been loaded in game. Can someone help me to solve my problem? -
When I am testing my mod, I cannot summon my Corrupted Zombie entity. This is the code: https://github.com/WitherBean/Decaying-Worlds-1.19-Forge/tree/main. The mod is for Forge 1.19. I am using Visual Studio Code.