Jump to content

[1.10.2] Steering Entity


Spyeedy

Recommended Posts

What I am trying to achieve with my custom entity is that the player can steer it like Green Goblin's Glider. So what I have managed to do so far is getting the player to be riding the entity. Here's what the problem lies, I don't know what I need to do to get the player to fly the entity. Also, the entity cannot be pushed like the pigs can be pushed. Code below.

 

 

public class EntityGreenGoblinGlider extends Entity
{	
public EntityGreenGoblinGlider(World worldIn)
{
	super(worldIn);
}

@Override
    public AxisAlignedBB getCollisionBox(Entity entityIn)
    {
        return entityIn.getEntityBoundingBox();
    }

    /**
     * Returns the collision bounding box for this entity
     */
@Override
    public AxisAlignedBB getCollisionBoundingBox()
    {
        return this.getEntityBoundingBox();
    }

@Override
public boolean canPassengerSteer()
{
	if (getControllingPassenger() instanceof EntityPlayer)
	{
		return true;
	}
	return false;
}

@Override
protected boolean canTriggerWalking()
{
	return false;
}

@Override
public boolean shouldRiderSit()
{
	return false;
}

@Override
public boolean canBeCollidedWith()
{
	return !this.isDead;
}

@Override
    public Entity getControllingPassenger()
    {
        return this.getPassengers().isEmpty() ? null : (Entity)this.getPassengers().get(0);
    }

@Override
protected boolean canBeRidden(Entity entityIn)
{
	return true;
}

@Override
public boolean canBePushed()
    {
        return true;
    }

@Override
public EnumActionResult applyPlayerInteraction(EntityPlayer player, Vec3d vec, ItemStack stack, EnumHand hand)
{
	if (!player.isSneaking())
	{
		player.startRiding(this, false);
	}
	return EnumActionResult.SUCCESS;
}

@Override
public void updatePassenger(Entity passenger)
    {
        if (this.isPassenger(passenger))
        {
            passenger.setPosition(this.posX, this.posY + 0.3, this.posZ);
        }
    }

@Override
public boolean attackEntityFrom(DamageSource source, float amount)
{
	this.setDead();
	return true;
}

@Override
protected void entityInit() {}

@Override
protected void readEntityFromNBT(NBTTagCompound compound) {}

@Override
protected void writeEntityToNBT(NBTTagCompound compound) {}
}

 

 

width=620 height=260http://www.startrek.com/uploads/assets/articles/61c89a9d73c284bda486afaeaf01cdb27180359b.jpg[/img]

Till next time. Thank you for delivering funny scenes to Star Trek as Chekov :) . Will always remember you

Link to comment
Share on other sites

The way I am thinking this must be handled is intercepting the players movement key presses/holds. IE if spaces is down fly up? or If W is down move forward.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

The way I am thinking this must be handled is intercepting the players movement key presses/holds. IE if spaces is down fly up? or If W is down move forward.

 

A packet you are saying? or an event handler?

width=620 height=260http://www.startrek.com/uploads/assets/articles/61c89a9d73c284bda486afaeaf01cdb27180359b.jpg[/img]

Till next time. Thank you for delivering funny scenes to Star Trek as Chekov :) . Will always remember you

Link to comment
Share on other sites

The way I am thinking this must be handled is intercepting the players movement key presses/holds. IE if spaces is down fly up? or If W is down move forward.

 

A packet you are saying? or an event handler?

Event handler and packets would be required. You subscribe to the InputEvent.KeyInputEvent and then send a packet to the server about the key being pressed. Then the server handles the execution.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

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