package net.alimrv.ridemod.block.custom;
import net.minecraft.client.renderer.entity.FallingBlockRenderer;
import net.minecraft.core.BlockPos;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MoverType;
import net.minecraft.world.entity.item.FallingBlockEntity;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.Vec3;
import org.jetbrains.annotations.NotNull;
public class EntityGrass extends FallingBlockEntity {
Vec3 vec = Vec3.ZERO;
BlockPos pos;
ServerLevel level;
BlockState state;
int i;
public EntityGrass(EntityType<? extends FallingBlockEntity> entityType, ServerLevel level , BlockPos pos , BlockState state, int i) {
super(entityType, level);
this.pos = pos;
this.level = level;
this.state = state;
this.i = i;
}
@Override
public void tick()
{
setNoGravity(true);
if(this.time >= 6)
{
placeBlock(this.pos,this.level,this.state,this.i);
this.kill();
}
this.setDeltaMovement(this.vec.add(0 , 0.5, 0));
this.move(MoverType.SELF , this.getDeltaMovement());
++this.time;
}
//places block after moving the entity
void placeBlock(BlockPos pos, @NotNull ServerLevel level , BlockState state , int i)
{
level.setBlock(pos,state , i);
}
}
I figured it was better to make a FallingBlockEntity than a fireball. But still I can't figure out how to change the blockState . I looked at FallingBlockRenderer but I don't know how to use it.