Posted May 6, 20169 yr 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.
May 7, 20169 yr You could technically just check entities near the block and apply a velocity vector to them whose magnitude varies with distance.
May 7, 20169 yr 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.
May 7, 20169 yr 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.
May 7, 20169 yr 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.