I was looking through code if I could find variable which could give me entity acceleration. I tried to calculate it by checking previous tick velocity (motionX/Y/Z) and current velocity in tick event but getting crash while loading game.
Im new in modding.
Vec3d prevmotion = new Vec3d(0,0,0);
@SubscribeEvent
public void onPlayerTick(TickEvent.PlayerTickEvent event) {
EntityPlayerSP player = mc.thePlayer;
System.out.println((prevmotion.xCoord - player.motionX) + " "+ (prevmotion.yCoord - player.motionY)+" "+(prevmotion.zCoord - player.motionZ));
prevmotion = new Vec3d(player.motionX,player.motionY,player.motionZ);
}
Error:
Description: Ticking player
java.lang.NullPointerException: Ticking player
at aimbow.AimbowGui.onPlayerTick(AimbowGui.java:96)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_7_AimbowGui_onPlayerTick_PlayerTickEvent.invoke(.dynamic)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:185)
at net.minecraftforge.fml.common.FMLCommonHandler.onPlayerPreTick(FMLCommonHandler.java:360)
at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:215)
at net.minecraft.entity.player.EntityPlayerMP.onUpdateEntity(EntityPlayerMP.java:345)
at net.minecraft.network.NetHandlerPlayServer.update(NetHandlerPlayServer.java:176)
at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.update(NetworkDispatcher.java:218)
at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:309)
at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:197)
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:818)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:699)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:548)
at java.lang.Thread.run(Unknown Source)