Posted November 22, 20168 yr 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) {} } http://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
November 23, 20168 yr 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.
November 23, 20168 yr Author 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? http://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
November 23, 20168 yr 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.
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.