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

Hi,

 

I'm wondering how a entity can get thrown or moved into (I'm not quite sure if these words are really correct there, but no idea what to use instead)

my block when it comes to near to it. (for anyone who knows Thaumcraft 4, the hungry nodes do something similiar)

 

I already looked into the code of the xp orbs, because the player can collect them, but I wasn't able to understand it...

 

So I'm asking now here. ;)

 

Thx in advance.

Bektor

Developer of Primeval Forest.

You could technically just check entities near the block and apply a velocity vector to them whose magnitude varies with distance.

  • Author

I've already got the check for the entities. So I've got a array list with all nearby entities.

But from the rest I've got no idea. I've got no clue how I can get the entitiy to be moved to my block.

 

I can of course add just some random values to the motion values of the entity, but then it will not get moved to my block in every situation, because of

random values. And to do it with a switch statement for the directions isn't that good because it requires the same code with just one different value for each direction and

a lot of testing to find values which are working --> so nothing I can work with.

 

 

 

But I know that Mojang does some multiplications and divisions and substracts and adds values for a reason I don't know.

Really, never look into Mojang's code, just a huge question mark is the result.

 

 

Developer of Primeval Forest.

EntityMotion += (BlockPos - EntityPos) * 0.1f; //simple and arbitrary.

 

Hooray vectors!

 

Breakdown:

(BlockPos - EntityPos)

results in a vector from Entity to Block, with a magnitude of the total distance.

* 0.1f

results in a vector 1/10th this distance, still pointing from Entity to Block.

EntityMotion +=

add this directed vector to the Entity's motion, pushing it towards the Block.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

EntityMotion += (BlockPos - EntityPos) * 0.1f; //simple and arbitrary.

 

Hooray vectors!

 

Breakdown:

(BlockPos - EntityPos)

results in a vector from Entity to Block, with a magnitude of the total distance.

* 0.1f

results in a vector 1/10th this distance, still pointing from Entity to Block.

EntityMotion +=

add this directed vector to the Entity's motion, pushing it towards the Block.

 

Vectors are why I want operator overloading in Java.

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.