Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

So I made an elephant, but I'd like to make it so that when it is going towards a target, it uses a run animation instead of a walk animation.

Here is my current code:
 

    private <E extends IAnimatable> PlayState predicate(AnimationEvent<E> event) {
        System.out.println("Attempting predicate...");
        if (event.isMoving()) {
            System.out.println("IsMoving = true!");
            if (getTarget() != null) {
                System.out.println("Target != null!");
                event.getController().setAnimation(new AnimationBuilder().addAnimation("run", true));
            } else {
                System.out.println("Target is null...");
                event.getController().setAnimation(new AnimationBuilder().addAnimation("walk", true));
            }
            return PlayState.CONTINUE;
        }

        event.getController().setAnimation(new AnimationBuilder().addAnimation("idle", true));
        return PlayState.CONTINUE;
    }

It uses the getTarget() method from the Mob class. However, it doesn't ever use the run animation, even if it is going after a mob. It still prints "Target is null...". And, the getTarget() method returns null everytime. Does anyone know how to fix this?

10 hours ago, irludure said:

Does anyone know how to fix this?

The target is either set via the mob or, typically, by a `TargetGoal` via the `targetSelector`. See `IronGolem` for an example.

  • Author

 

4 hours ago, ChampionAsh5357 said:

The target is either set via the mob or, typically, by a `TargetGoal` via the `targetSelector`. See `IronGolem` for an example.

I already have a HurtByTargetGoal() setup and a MeleeAttackGoal(). They work correctly, I just can't seem to find out how to check if it is targeting something currently.

On 5/27/2023 at 2:44 PM, irludure said:

I already have a HurtByTargetGoal() setup and a MeleeAttackGoal(). They work correctly, I just can't seem to find out how to check if it is targeting something currently.

Just check whether `#getTarget` is not null then. You already seem to be doing that, so most likely is that the data is not synced to the client. Maybe you should add a SynchedDataAccessor and set the value to true or false depending on `#setTarget`.

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.