Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.9] [UNSOLVED] Let entities be thrown into my block


Bektor
 Share

Recommended Posts

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Yep, it's what the title says I only found out how to generate flowers and didn't find the the thingy with all the configured features are Would be nice if someone could help! Thanks
    • I started a server with PlayerRevive/Tombstone mod and when I die and I respawn I don't stop dying. Also I have a Issue with FramedBlocks: when I put one block of this mod, the server crashes and closes. I put here the server log: [16:55:36 ERROR]: Exception caught during firing event: Cannot invoke "net.minecraft.world.World.func_201670_d()" because "this.field_145850_b" is null         Index: 11         Listeners:                 0: HIGHEST                 1: ASM: class ovh.corail.tombstone.event.EventHandler onServerTick(Lnet/minecraftforge/event/TickEvent$ServerTickEvent;)V                 2: NORMAL                 3: ASM: class com.mrcrayfish.guns.common.DelayedTask onServerTick(Lnet/minecraftforge/event/TickEvent$ServerTickEvent;)V                 4: ASM: class shadows.placebo.util.PlaceboTaskQueue tick(Lnet/minecraftforge/event/TickEvent$ServerTickEvent;)V                 5: ASM: com.dairymoose.modernlife.core.ModernLifeCommon@501855c1 onServerTick(Lnet/minecraftforge/event/TickEvent$ServerTickEvent;)V                 6: ASM: com.github.alexthe666.citadel.server.CitadelEvents@7bca1184 onServerTickEvent(Lnet/minecraftforge/event/TickEvent$ServerTickEvent;)V                 7: ASM: me.ichun.mods.ichunutil.common.core.EventHandlerServer@41275fcc onServerTick(Lnet/minecraftforge/event/TickEvent$ServerTickEvent;)V                 8: ASM: net.minecraftforge.common.ForgeInternalHandler@5495b2c1 onServerTick(Lnet/minecraftforge/event/TickEvent$ServerTickEvent;)V                 9: ASM: class com.simibubi.create.events.CommonEvents onServerTick(Lnet/minecraftforge/event/TickEvent$ServerTickEvent;)V                 10: ASM: class net.geforcemods.securitycraft.SCEventHandler onServerTick(Lnet/minecraftforge/event/TickEvent$ServerTickEvent;)V                 11: ASM: class xfacthd.framedblocks.common.util.EventHandler onServerTick(Lnet/minecraftforge/event/TickEvent$ServerTickEvent;)V                 12: ASM: class com.hollingsworth.arsnouveau.api.event.EventQueue serverTick(Lnet/minecraftforge/event/TickEvent$ServerTickEvent;)V                 13: ASM: com.mrcrayfish.obfuscate.common.data.SyncedPlayerData@2c57ecfc onServerTick(Lnet/minecraftforge/event/TickEvent$ServerTickEvent;)V                 14: ASM: noppes.npcs.ServerTickHandler@30710a3e onServerTick(Lnet/minecraftforge/event/TickEvent$ServerTickEvent;)V                 15: ASM: com.sk89q.worldedit.forge.ThreadSafeCache@37b339fc tickStart(Lnet/minecraftforge/event/TickEvent;)V                 16: LOWEST                 17: ASM: ovh.corail.tombstone.proxy.ServerProxy@5a4a21ad onServerTick(Lnet/minecraftforge/event/TickEvent$ServerTickEvent;)V java.lang.NullPointerException: Cannot invoke "net.minecraft.world.World.func_201670_d()" because "this.field_145850_b" is null         at xfacthd.framedblocks.common.tileentity.FramedTileEntity.checkSolidStateOnLoad(FramedTileEntity.java:539)         at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)         at xfacthd.framedblocks.common.util.EventHandler.onServerTick(EventHandler.java:84)         at net.minecraftforge.eventbus.ASMEventHandler_485_EventHandler_onServerTick_ServerTickEvent.invoke(.dynamic)         at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85)         at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302)         at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283)         at net.minecraftforge.fml.hooks.BasicEventHooks.onPreServerTick(BasicEventHooks.java:113)         at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:1001)         at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:818)         at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:269)         at java.base/java.lang.Thread.run(Thread.java:833) [16:55:36 ERROR]: Encountered an unexpected exception [16:55:36 FATAL]: Preparing crash report with UUID 62ce1105-b5dd-4f30-9af8-999e3f1f687f [16:55:37 ERROR]: This crash report has been saved to: /home/container/./crash-reports/crash-2022-09-29_16.55.36-server.txt
    • Been looking everywhere, just hope this helps someone. As of 1.19.2 the only way that doesn't cause problems would be to use push(). Unless someone is brighter than me lol.   @SubscribeEvent public static void onLivingJump(LivingEvent.LivingJumpEvent event){ float jumpMultiplier = 0.07F; if (event.getEntity() instanceof Player){ event.getEntity().push(0,jumpMultiplier,0); }  
  • Topics

×
×
  • Create New...

Important Information

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