Jump to content

[1.7.10] How to detect if an entity is moving?


TheRealMcrafter

Recommended Posts

Hey guys, I want to check if an entity is moving from inside my Tile Entity updateEntity method. I have already checked if entity.prevPosX != entity.posX, I've tried using entity.motionX, and I've tried storing the old coordinates in a variable and checking against them. Entity.motion* only works if the player is sprinting, and all of the other methods I've tried don't work. Does anyone know how to do this?

Link to comment
Share on other sites

I'm checking on the server, and it is not just for the player, it is for any living entity. I am making a motion detector, so if any entity in the list moves, isDetected turns to true.

 

 

 if (!worldObj.isRemote){
		List list = this.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(this.xCoord - 10, this.yCoord - 10, this.zCoord - 10, this.xCoord + 10, this.yCoord + 10, this.zCoord + 10));
		if (list.isEmpty()){
			this.isDetecting = false;
		} else {
			for (int i = 0; i < list.size(); i ++){
				EntityLivingBase entity = (EntityLivingBase) list.get(i);

				if (entity.motionX != 0){
					this.isDetecting = true;
				} else {
					this.isDetecting = false;
				}					
			}
		}

 

Right now I'm focusing only on motionX, but it doesn't work for Y and Z also. A System.out.println() always prints out 0.0

Link to comment
Share on other sites

Does anyone have a workaround for this? It appears coolAlias had troubles with this before, did you ever find a way to do it?

 

http://www.minecraftforge.net/forum/index.php?topic=13721.0

 

In that thread, TheGreyGhost gives the solution. Create your own field to remember the previous tick's position. Then each tick you compare current position to that previous position, do what you need to do, and then always update the previous position field with the current position.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

How could I do this when I have more than one entity to track, and I dont know how many entities that are being tracked? An ArrayList?

 

Yes, that would work.

 

I think I would do it like this in your tile entity:

1) create a hashmap field for mapping entities to their previous position

2) scan for entities in a bounding box around the tile entity with a getEntititesWithinAABB() type function and store that in a List or ArrayList.

3) update the hashmap keys by removing any entities that are no longer within range, and adding any new ones in range.

4) process the hashmap values (representing the previous position) as I mentioned above -- i.e. compare with current value, take action as needed.

5) update the hashmap values by setting the previous position to value of current position.

 

Note that you can store all three dimensions (x, y, z) of a position in a Vec3 so your hashmap could map entity to Vec3.

 

Definitely a bit of coding needed with this approach, but it should work.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

By the way, this is bad:

entity.motionX != 0

since motion fields are all floats, they suffer from approximation errors. See here, it is a really good article on that topic: http://www.theregister.co.uk/2006/08/12/floating_point_approximation/

So I'd suggest you check for "approximately" 0, like

entity.motionX > 0.0001 || entity.motionX < -0.0001

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Link to comment
Share on other sites

By the way, this is bad:

entity.motionX != 0

since motion fields are all floats, they suffer from approximation errors. See here, it is a really good article on that topic: http://www.theregister.co.uk/2006/08/12/floating_point_approximation/

So I'd suggest you check for "approximately" 0, like

entity.motionX > 0.0001 || entity.motionX < -0.0001

 

Yeah, I just quickly did that to show my point. I figured that out when I was testing for motionY, which is about 1.17. Thanks for reminding me though.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • my server is crashing for some reason I don't understand i have mods on the server   ---- Minecraft Crash Report ---- WARNING: coremods are present:   CorePlugin (smooth-font-mod-1_12_2.jar)   TransformLoader (DynamicSurroundings-1.12.2-3.6.1.0.jar)   LoadingPlugin (Bloodmoon_MC1.12.2_1.5.3.jar)   LoadingPlugin (resourceloader-mc1.12.1-1.5.3.jar)   XaeroWorldMapPlugin (WorldMap-v1.29.3-for-Forge-1.12.2.jar)   Aqua Acrobatics Transformer (AquaAcrobatics-v1.2.2-1.12.2.jar)   AppleCore (AppleCore-mc1.12.2-3.2.0.jar)   ItemPatchingLoader (ItemPhysic_Full_1.4.37_mc1.12.2.jar)   XaeroMinimapPlugin (Minimap-v22.16.2-for-Forge-1.12.2.jar)   llibrary (llibrary-core-1.0.11-1.12.2.jar)   AstralCore (astralsorcery-1.12.2-1.10.27.jar)   ForgelinPlugin (forgelin-1.8.4.jar)   PhosphorFMLLoadingPlugin (phosphor_forge_mc1.12.2_0.2.7_universal.jar)   BetterFoliageLoader (betterfoliage-mc1.12-2.3.3.jar)   CreativePatchingLoader (CreativeCore_v1.10.65_mc1.12.2.jar)   Inventory Tweaks Coremod (InventoryTweaks_1.12.2_1.64dev.151.jar)   SurgeLoadingPlugin (surge-1.12.2-2.0.79.jar) Contact their authors BEFORE contacting forge // Hi. I'm Minecraft, and I'm a crashaholic. Time: 9/30/23 1:22 PM Description: Exception in server tick loop java.lang.NullPointerException: Exception in server tick loop     at net.minecraft.world.WorldEntitySpawner.func_77191_a(WorldEntitySpawner.java:297)     at net.minecraft.world.gen.ChunkGeneratorOverworld.func_185931_b(ChunkGeneratorOverworld.java:466)     at net.minecraft.world.chunk.Chunk.func_186034_a(Chunk.java:1019)     at net.minecraft.world.chunk.Chunk.func_186030_a(Chunk.java:999)     at net.minecraft.world.gen.ChunkProviderServer.func_186025_d(ChunkProviderServer.java:157)     at net.minecraft.server.MinecraftServer.func_71222_d(MinecraftServer.java:344)     at net.minecraft.server.MinecraftServer.func_71247_a(MinecraftServer.java:314)     at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:270)     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:486)     at java.lang.Thread.run(Thread.java:748) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details:     Minecraft Version: 1.12.2     Operating System: Linux (amd64) version 4.19.0-22-amd64     Java Version: 1.8.0_312, Oracle Corporation     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Oracle Corporation     Memory: 3256290592 bytes (3105 MB) / 3777495040 bytes (3602 MB) up to 3817865216 bytes (3641 MB)     JVM Flags: 1 total; -Xmx4096M     IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95     FML: MCP 9.42 Powered by Forge 14.23.5.2860 86 mods loaded, 86 mods active     States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored     | State  | ID                   | Version              | Source                                        | Signature                                |     |:------ |:-------------------- |:-------------------- |:--------------------------------------------- |:---------------------------------------- |     | LCHIJA | minecraft            | 1.12.2               | minecraft.jar                                 | None                                     |     | LCHIJA | mcp                  | 9.42                 | minecraft.jar                                 | None                                     |     | LCHIJA | FML                  | 8.0.99.99            | server.jar                                    | e3c3d50c7c986df74c645c0ac54639741c90a557 |     | LCHIJA | forge                | 14.23.5.2860         | server.jar                                    | e3c3d50c7c986df74c645c0ac54639741c90a557 |     | LCHIJA | creativecoredummy    | 1.0.0                | minecraft.jar                                 | None                                     |     | LCHIJA | itemphysic           | 1.4.0                | minecraft.jar                                 | None                                     |     | LCHIJA | xaerominimap_core    | 1.12.2-1.0           | minecraft.jar                                 | None                                     |     | LCHIJA | smoothfontcore       | mc1.12.2-2.0-alpha-7 | minecraft.jar                                 | None                                     |     | LCHIJA | xaeroworldmap_core   | 1.12.2-1.0           | minecraft.jar                                 | None                                     |     | LCHIJA | aether_legacy        | 1.5.3.2              | aether-1.12.2-v1.5.3.2.jar                    | None                                     |     | LCHIJA | applecore            | 3.2.0                | AppleCore-mc1.12.2-3.2.0.jar                  | None                                     |     | LCHIJA | crafttweaker         | 4.1.20               | CraftTweaker2-1.12-4.1.20.682.jar             | None                                     |     | LCHIJA | jei                  | 4.16.1.1001          | jei_1.12.2-4.16.1.1001.jar                    | None                                     |     | LCHIJA | appleskin            | 1.0.14               | AppleSkin_mc1.12_1.0.14.jar                   | None                                     |     | LCHIJA | aquaacrobatics       | 1.1.6                | AquaAcrobatics-v1.2.2-1.12.2.jar              | None                                     |     | LCHIJA | baubles              | 1.5.2                | Baubles_1.12_1.5.2.jar                        | None                                     |     | LCHIJA | astralsorcery        | 1.10.27              | astralsorcery-1.12.2-1.10.27.jar              | a0f0b759d895c15ceb3e3bcb5f3c2db7c582edf0 |     | LCHIJA | guideapi             | 1.12-2.1.8-63        | guide-api-1.12-2.1.8-63.jar                   | None                                     |     | LCHIJA | bloodmagic           | 1.12.2-2.4.3-105     | BloodMagic-1.12.2-2.4.3-105.jar               | None                                     |     | LCHIJA | bloodmoon            | 1.5.3                | Bloodmoon_MC1.12.2_1.5.3.jar                  | d72e0dd57935b3e9476212aea0c0df352dd76291 |     | LCHIJA | bookshelf            | 2.3.590              | Bookshelf_1.12.2_2.3.590.jar                  | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | botania              | r1.10-364            | Botania-r1.10-364.4.jar                       | None                                     |     | LCHIJA | crafttweakerjei      | 2.0.3                | CraftTweaker2-1.12-4.1.20.682.jar             | None                                     |     | LCHIJA | creativecore         | 1.10.0               | CreativeCore_v1.10.65_mc1.12.2.jar            | None                                     |     | LCHIJA | gamestages           | 2.0.123              | GameStages-1.12.2-2.0.123.jar                 | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | dimstages            | 2.0.23               | DimensionStages-1.12.2-2.0.23.jar             | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | durability101        | 0.0.4                | durability101-forge-1.12-0.0.4.jar            | None                                     |     | LCHIJA | orelib               | 3.6.0.1              | orelib-1.12.2-3.6.0.1.jar                     | 7a2128d395ad96ceb9d9030fbd41d035b435753a |     | LCHIJA | dsurround            | 3.6.1.0              | DynamicSurroundings-1.12.2-3.6.1.0.jar        | 7a2128d395ad96ceb9d9030fbd41d035b435753a |     | LCHIJA | ebwizardry           | 4.3.9                | electroblobswizardry-4.3.9.jar                | None                                     |     | LCHIJA | eplus                | 5.0.178              | EnchantingPlus_1.12.2_5.0.178.jar             | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | endreborn            | 0.3.5                | EndReborn_1.12.2_III0.3.6.jar                 | None                                     |     | LCHIJA | waila                | 1.8.26               | Hwyla_1.8.26_B41_1.12.2.jar                   | None                                     |     | LCHIJA | mtlib                | 3.0.7                | mtlib-3.0.7.jar                               | None                                     |     | LCHIJA | extrabotany          | 60                   | extrabotany-r1.1-60-beta-hotfix.jar           | None                                     |     | LCHIJA | fencejumper          | 1.0.1                | Fence_Jumper_Mod_1.12.2.jar                   | None                                     |     | LCHIJA | forbidden_arcanus    | 1.12.2-1.1.4         | forbidden_arcanus_1.12.2_1.1.4.jar            | None                                     |     | LCHIJA | forgelin             | 1.8.4                | forgelin-1.8.4.jar                            | None                                     |     | LCHIJA | ftblib               | 5.4.7.2              | FTBLib-5.4.7.2.jar                            | None                                     |     | LCHIJA | itemfilters          | 1.0.4.2              | ItemFilters-1.0.4.2.jar                       | None                                     |     | LCHIJA | ftbquests            | 1202.9.0.14          | FTBQuests-1.12.2-1202.9.0.14.jar              | None                                     |     | LCHIJA | gamestagebooks       | 1.12.2-1.0.2         | gamestagebooks-1.12.2-1.0.2-universal.jar     | None                                     |     | LCHIJA | geckolib3            | 3.0.30               | geckolib-forge-1.12.2-3.0.31.jar              | None                                     |     | LCHIJA | initialinventory     | 2.0.2                | initialinventory-3_0_0.jar                    | None                                     |     | LCHIJA | inventorytweaks      | 1.64+dev.151.822d839 | InventoryTweaks_1.12.2_1.64dev.151.jar        | 55d2cd4f5f0961410bf7b91ef6c6bf00a766dcbe |     | LCHIJA | ironbackpacks        | 1.12.2-3.0.8-12      | ironbackpacks-1.12.2-3.0.8-12.jar             | None                                     |     | LCHIJA | ironchest            | 1.12.2-7.0.67.844    | ironchest_1.12.2_7.0.72.847.jar               | None                                     |     | LCHIJA | ironfurnaces         | 1.3.5                | ironfurnaces-1.3.5.jar                        | None                                     |     | LCHIJA | itemstages           | 2.0.49               | ItemStages-1.12.2-2.0.49.jar                  | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | libraryex            | 1.2.2                | LibraryEx-1.12.2-1.2.2.jar                    | None                                     |     | LCHIJA | lost_aether          | 1.0.2                | lost-aether-content-1.12.2-1.0.2.jar          | None                                     |     | LCHIJA | magical_void_books   | 1.0.0                | MagicalVoidBooks_1.12.2_1.0.1.jar             | None                                     |     | LCHIJA | xaerominimap         | 22.16.2              | Minimap-v22.16.2-for-Forge-1.12.2.jar         | None                                     |     | LCHIJA | mobsunscreen         | @version@            | mobsunscreen-1.12.2-3.1.5.jar                 | None                                     |     | LCHIJA | llibrary             | 1.7.20               | llibrary_1.7.20_1.12.2.jar                    | b9f30a813bee3b9dd5652c460310cfcd54f6b7ec |     | LCHIJA | mowziesmobs          | 1.5.8                | mowziesmobs_1.12.2_1.5.8.jar                  | None                                     |     | LCHIJA | patchouli            | 1.0-23.6             | patchouli-1.0-23.6.jar                        | None                                     |     | LCHIJA | naturesaura          | 18.1                 | naturesaura-18.1.jar                          | None                                     |     | LCHIJA | naturescompass       | 1.8.5                | NaturesCompass_1.12.2_1.8.5.jar               | None                                     |     | LCHIJA | netherex             | 2.2.5                | NetherEx-1.12.2-2.2.5.jar                     | None                                     |     | LCHIJA | nutrition            | 4.9.0                | nutrition-1.12.2-4.9.0.jar                    | None                                     |     | LCHIJA | orestages            | 2.0.37               | OreStages-1.12.2-2.0.37.jar                   | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | puddles              | 1.1                  | Puddles_1.12.2_1.1.jar                        | None                                     |     | LCHIJA | qsilkspawners        | 1.0.0                | qsilkspawners_1.0.0.jar                       | None                                     |     | LCHIJA | rallyhealth          | 1.0.0                | RallyHealth_1.0.jar                           | None                                     |     | LCHIJA | realisticarmortiers  | 1.1.1                | realisticarmortiers-1.12.2-1.1.1.jar          | None                                     |     | LCHIJA | recipestages         | 1.1.3                | RecipeStages-1.1.3.8.jar                      | None                                     |     | LCHIJA | additionalstructures | 2.5.0                | rexs-additionalstructures-1.12.xv.2.5.0.jar   | None                                     |     | LCHIJA | sit                  | v1.1.1               | sit_1.12.x_v1.1.1.jar                         | None                                     |     | LCHIJA | skilltree            | 1.2.3.0              | skilltree-1.2.3.0.jar                         | None                                     |     | LCHIJA | surge                | 2.0.79               | surge-1.12.2-2.0.79.jar                       | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | twilightforest       | 3.11.1021            | twilightforest_1.12.2_3.11.1021_universal.jar | None                                     |     | LCHIJA | tfspellpack          | 1.1.0                | tfspellpack-1.1.0-mc1.12.2.jar                | None                                     |     | LCHIJA | titlechanger         | 1.1.4                | titlechanger-1.1.4.jar                        | None                                     |     | LCHIJA | tombmanygraves       | 1.12-4.2.0           | TombManyGraves_1.12_4.2.0.jar                 | None                                     |     | LCHIJA | totemic              | 1.12.2-0.11.7        | Totemic-1.12.2-0.11.7.jar                     | None                                     |     | LCHIJA | toughasnails         | 3.1.0.140            | ToughAsNails_1.12.2_3.1.0.140_universal.jar   | None                                     |     | LCHIJA | wawla                | 2.6.275              | Wawla_1.12.2_2.6.275.jar                      | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCHIJA | winterwonderland     | 1.2.2                | WinterWonderLand_1.12_1.2.2.jar               | None                                     |     | LCHIJA | xaeroworldmap        | 1.29.3               | WorldMap-v1.29.3-for-Forge-1.12.2.jar         | None                                     |     | LCHIJA | xpfromharvest        | 1.2.0                | xpfromharvest-1.12.2-1.2.0.jar                | None                                     |     | LCHIJA | zenstages            | 0.5.0-null           | zenstages-0.5.0.jar                           | None                                     |     | LCHIJA | rtg                  | 6.1.0.0-snapshot.1   | RTG-1.12.2-6.1.0.0-snapshot.1.jar             | None                                     |     | LCHIJA | phosphor-lighting    | 1.12.2-0.2.7         | phosphor_forge_mc1.12.2_0.2.7_universal.jar   | None                                     |     | LCHIJA | betteranimalsplus    | 9.0.1                | betteranimalsplus_1.12.2_9.0.1.jar            | None                                     |     | LCHIJA | solcarrot            | 1.8.4                | solcarrot-1.12.2-1.8.4.jar                    | None                                     |     Loaded coremods (and transformers):  CorePlugin (smooth-font-mod-1_12_2.jar)   bre.smoothfont.asm.Transformer TransformLoader (DynamicSurroundings-1.12.2-3.6.1.0.jar)    LoadingPlugin (Bloodmoon_MC1.12.2_1.5.3.jar)   lumien.bloodmoon.asm.ClassTransformer LoadingPlugin (resourceloader-mc1.12.1-1.5.3.jar)   lumien.resourceloader.asm.ClassTransformer XaeroWorldMapPlugin (WorldMap-v1.29.3-for-Forge-1.12.2.jar)   xaero.map.core.transformer.ChunkTransformer   xaero.map.core.transformer.NetHandlerPlayClientTransformer   xaero.map.core.transformer.EntityPlayerTransformer   xaero.map.core.transformer.AbstractClientPlayerTransformer   xaero.map.core.transformer.WorldClientTransformer   xaero.map.core.transformer.PlayerListTransformer   xaero.map.core.transformer.SaveFormatTransformer   xaero.map.core.transformer.BiomeColorHelperTransformer   xaero.map.core.transformer.MinecraftTransformer Aqua Acrobatics Transformer (AquaAcrobatics-v1.2.2-1.12.2.jar)    AppleCore (AppleCore-mc1.12.2-3.2.0.jar)   squeek.applecore.asm.TransformerModuleHandler ItemPatchingLoader (ItemPhysic_Full_1.4.37_mc1.12.2.jar)   com.creativemd.itemphysic.ItemTransformer XaeroMinimapPlugin (Minimap-v22.16.2-for-Forge-1.12.2.jar)   xaero.common.core.transformer.ChunkTransformer   xaero.common.core.transformer.NetHandlerPlayClientTransformer   xaero.common.core.transformer.EntityPlayerTransformer   xaero.common.core.transformer.AbstractClientPlayerTransformer   xaero.common.core.transformer.WorldClientTransformer   xaero.common.core.transformer.EntityPlayerSPTransformer   xaero.common.core.transformer.PlayerListTransformer   xaero.common.core.transformer.SaveFormatTransformer   xaero.common.core.transformer.GuiIngameForgeTransformer   xaero.common.core.transformer.GuiBossOverlayTransformer   xaero.common.core.transformer.ModelRendererTransformer llibrary (llibrary-core-1.0.11-1.12.2.jar)   net.ilexiconn.llibrary.server.core.plugin.LLibraryTransformer   net.ilexiconn.llibrary.server.core.patcher.LLibraryRuntimePatcher AstralCore (astralsorcery-1.12.2-1.10.27.jar)    ForgelinPlugin (forgelin-1.8.4.jar)    PhosphorFMLLoadingPlugin (phosphor_forge_mc1.12.2_0.2.7_universal.jar)    BetterFoliageLoader (betterfoliage-mc1.12-2.3.3.jar)   mods.betterfoliage.loader.BetterFoliageTransformer CreativePatchingLoader (CreativeCore_v1.10.65_mc1.12.2.jar)    Inventory Tweaks Coremod (InventoryTweaks_1.12.2_1.64dev.151.jar)   invtweaks.forge.asm.ContainerTransformer SurgeLoadingPlugin (surge-1.12.2-2.0.79.jar)        Profiler Position: N/A (disabled)     Player Count: 0 / 20; []     Is Modded: Definitely; Server brand changed to 'fml,forge'     Type: Dedicated Server (map_server.txt)
    • Was working fine last night with the same mods but now I am getting this: The game crashed whilst rendering overlay Error: java.lang.ExceptionInInitializerError: null https://pastebin.com/rEpcDEFM
    • Hello. I am having a problem with my All the Mods 9 server, version 0.1.9, crashing after a period of time in which players time out in a certain area. In that area, there are a combination of modpacks at play. I was wondering if anyone could interpret what was causing this crash. Here is the crash report. https://gist.github.com/Logic-alFallacy/0ba6004a8dc0ab1c834b7f0776d3d4a5 Thank you in advance.
    • I just solved my issue I hope this helps   I have an AMD gpu and a dedicated NVIDIA GPU in my device settings, in the NVIDIA control panel it was set to Auto select under 3D Settings>Global settings> Preferred Graphics processor dropdown menu I changed the setting to High-Performance NVIDIA processor and then made sure under  3D Settings>Program settings I made sure the minecraft launcher (minecraft.exe) was added to use the Dedicated GPU now all of a sudden everything works A-OK   This fixed my issue about to try adding mods through curseforge I hope this helps someone else
    • One of these mods are directly modifying the game instead of using the Forge API and crashing:  
  • Topics

×
×
  • Create New...

Important Information

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