Posted January 30, 20205 yr I want to reset FOV when player is applied speed modifier. The Game doesn't call onFOVChange method... @SubscribeEvent public static void setSpeedPlayer(TickEvent.PlayerTickEvent event) { player_movement_speed = event.player.getAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); player_movement_speed.removeModifier(/*UUID*/); player_movement_speed.applyModifier(new AttributeModifier(/*UUID*/, /*Name*/, speed - 1.0f, AttributeModifier.Operation.MULTIPLY_TOTAL)); } } @SubscribeEvent @OnlyIn(Dist.CLIENT) public void onFOVChange(FOVUpdateEvent event) { LOGGER.debug("ChangeFOV!"); if (event.getEntity() instanceof PlayerEntity) { PlayerEntity player = event.getEntity(); EffectInstance speed = player.getActivePotionEffect(Effects.SPEED); float fov = 0.9f, sprint_fov = 1.02f; if (player.isSprinting()) event.setNewfov(speed != null ? sprint_fov + ((0.104f * (speed.getAmplifier() + 1))) : sprint_fov); else event.setNewfov(speed != null ? fov + (0.08f * (speed.getAmplifier() + 1)) : fov); } } Edited January 30, 20205 yr by kyazuki
January 30, 20205 yr Author I wrote @Mod.EventBusSubscriber and @SubscribeEvent. Isn't it enough to register?
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.