Posted February 19, 20214 yr When I spawn a projectile with a high velocity it seems to render in the incorrect location but it ends up hitting the correct block. Better explained by watching this clip: https://youtu.be/ENmASw9UQVQ Here is the basic code I used to spawn the projectile: The only thing that I could think of as the cause would be some kind of de-sync with the client because the projectile doesn't hit mobs or blocks that would be in the way if it was actually where it's rendering. Any clues on how to fix this would be very helpful.
February 20, 20214 yr Author On 2/19/2021 at 1:19 AM, diesieben07 said: ArrowEntity uses SSpawnObjectPacket, which can only handle motion between -3.9 and +3.9. Okay I see what you mean in SSpawnObjectPacket but I'm not sure how I could change that or if there's a different packet I could send. I tried creating a new packet extending SSpawnObjectPacket but minecraft doesn't render custom non-living entities with that packet. Before I was using 'NetworkHooks.getEntitySpawningPacket(this);' which ultimately creates a SCustomPayloadPlayPacket packet which does render custom non-living entities but I don't know how I could edit that packet either. (Both clamp the motion) Edited February 20, 20214 yr by MysticalMike
February 22, 20214 yr Author On 2/20/2021 at 12:03 PM, diesieben07 said: Do not make your own "vanilla style" packet (i.e. subclass of IPacket). It won't work. You can implement IEntityAdditionalSpawnData on your entity and encode the motion again, without clamping. This requires the use of NetworkHooks.getEntitySpawningPacket (like all modded entities). Okay so I got it to write and read my data but how can I use that to actually change the speed for the client?
February 22, 20214 yr Author 2 minutes ago, diesieben07 said: Is the method called? Does it read the correct values? Yeah, but even setting the motion even to (0, 0, 0) doesn't seem to change it.
February 22, 20214 yr Author 3 hours ago, diesieben07 said: I can't see why that would happen. Can you post a Git repo of your mod? Okay I posted it to my github: https://github.com/MysticalMike/GunMod I use EMPGun to spawn the projectile: io/github/mysticalmike/gunmod/common/items/EMPGun And BulletEntity is the projectile spawned: io/github/mysticalmike/gunmod/common/entities/BulletEntity Edited February 22, 20214 yr by MysticalMike
February 23, 20214 yr Author I'm just going to bump this because I don't think you got a notification since I edited the last message, but there's my project ^^^
February 23, 20214 yr Author On 2/20/2021 at 12:03 PM, diesieben07 said: Do not make your own "vanilla style" packet (i.e. subclass of IPacket). It won't work. You can implement IEntityAdditionalSpawnData on your entity and encode the motion again, without clamping. This requires the use of NetworkHooks.getEntitySpawningPacket (like all modded entities). How exactly does one write a packet and get forge to send it?
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.