Commit Graph

48 Commits

Author SHA1 Message Date
teknomunk
f1a0c04f52 Make it possible to pick up arrows in creative mode 2024-12-25 11:52:24 +01:00
teknomunk
17f063c4e5 Fix tipped arrow behavior, remove debug code 2024-12-25 11:52:24 +01:00
teknomunk
33c70fd677 Rework projectile pickup code (to prevent item duplication bugs), always update _last_pos, short circuit processing behaviors if the entity was removed by a behavior but didn't report it 2024-12-25 11:52:24 +01:00
teknomunk
174cb5fe1c Let arrows stick in players 2024-12-25 11:52:24 +01:00
teknomunk
aa8cec9911 Implement mcl_util.remove_entity() and convert projectile code to use it 2024-12-25 11:52:24 +01:00
teknomunk
df8db4aa39 Add pitch and yaw offset support to vl_projectile 2024-12-25 11:52:24 +01:00
teknomunk
1df10c8dd3 Correct damage for mob projectiles 2024-12-25 11:52:24 +01:00
teknomunk
efa6e7d2d0 Move arrow self-collision grace logic to vl_projectile then apply to mob projectiles and splash and linger potions, allow entity luaentity to be passed to mcl_util.get_entity_id() 2024-12-25 11:52:24 +01:00
teknomunk
2d56deacf6 Replace _puncher with _owner, rework projectile code to make _owner a string, copy mcl_util.gen_uuid() from minecart branch, add mcl_util.get_entity_id(), fix crash 2024-12-25 11:52:24 +01:00
teknomunk
96abcd2bcc Remove debug dump, move maximum time to live to vl_projectile 2024-12-25 11:52:24 +01:00
teknomunk
3df59a47b0 Document vl_projectile.replace_with_item_drop 2024-12-25 11:52:24 +01:00
teknomunk
c857d66f5d Move projectile stick logic into vl_projectile 2024-12-25 11:52:24 +01:00
teknomunk
32d37b30bf Move tracer to vl_projectile 2024-12-25 11:52:24 +01:00
teknomunk
f265f5b52d Change mcl_bows to use standard vl_projectile on_step handler, move burning behavior to vl_projectile 2024-12-25 11:52:24 +01:00
teknomunk
c3275eb0b7 Resolve luacheck findings 2024-12-25 11:52:24 +01:00
teknomunk
e192072a2c Add hook to allow piercing enchantment to be implemented 2024-12-25 11:52:24 +01:00
teknomunk
db8bceebf3 Fix dispenser arrows so they hit players and entities, minetest.register_entity -> vl_projectile.register for mcl_throwing:egg 2024-12-25 11:52:24 +01:00
teknomunk
ee3ea9d3f5 Prevent dereferencing nil in wither.lua, fix minor typo in debug statement 2024-12-25 11:52:24 +01:00
teknomunk
fe513c321b Add workarround for random velocity change of particles on creation 2024-12-25 11:52:24 +01:00
teknomunk
31e08b668d Make sure a projectile sets on fire the thing it collided with 2024-12-25 11:52:24 +01:00
teknomunk
b821f3d72f Fix luacheck findings for this PR: remove unused variables, remove overwritten value, add missing dependencies, fix undefined variable usage 2024-12-25 11:52:24 +01:00
teknomunk
b8fcc4c02e Prevent projectiles from crashing server when removed when it punched something (wither skull hitting the wither will cause this), mark wither skull with _removed = true when death timer removes it 2024-12-25 11:52:24 +01:00
teknomunk
2864e8fa30 Correct behavior when ignore_gravity flag is true, fix mob projectile velocity calculation, add missing entity_def lookup 2024-12-25 11:52:24 +01:00
teknomunk
b4e6417b92 Convert mcl_mobs.register_arrow() to use vl_projectile, tested only with shulker bullet so far 2024-12-25 11:52:24 +01:00
teknomunk
48937b3083 Make splash, lingering and othe projectiles hit players 2024-12-25 11:52:24 +01:00
teknomunk
dbbc53173c Stop minimum draw arrows from hitting player that shot them 2024-12-25 11:52:24 +01:00
teknomunk
3b7fb6613e Prevent collisions with entities until projectile is at least one node from where it started (to prevent always hitting yourself), modify mcl_bows.shoot_arrow() and mcl_bows_s.shoot_arrow_crossbow() to use vl_projectile.create(), fix projectiles damaging players 2024-12-25 11:52:24 +01:00
teknomunk
dd5ef7312c Inline dir_to_pitch() and use correct formula for pitch 2024-12-25 11:52:24 +01:00
teknomunk
d71d9f5bf2 Address more review comments 2024-12-25 11:52:24 +01:00
teknomunk
c4df080af5 Make arrows damage players, update API documentation, fix several crashes that occurred when arrows hit a player 2024-12-25 11:52:24 +01:00
teknomunk
fa390b5752 Fix splash potions, fix crash when projectiles hit unknown nodes 2024-12-25 11:52:24 +01:00
teknomunk
ebdc5a5914 Remove logging in tipped_arrows, prevent crash when spawning chicks, add extra safety check in vl_projectile.collides_with_solids 2024-12-25 11:52:24 +01:00
teknomunk
9a877cf7b0 Lingering potions should not collide with liquids, change behaviors assersion loop to catch nil members 2024-12-25 11:52:24 +01:00
teknomunk
5474e31a8f Convert splash potion to vl_projectile, remove dead code, precompute several values in splash potion code, add check of behaviors array in vl_projectile 2024-12-25 11:52:24 +01:00
teknomunk
a6cb215720 Revert entity->object for three lines 2024-12-25 11:52:24 +01:00
teknomunk
2f2df5f89d Fix typo _ -> . 2024-12-25 11:52:24 +01:00
teknomunk
6893a4e8b6 Fix typo in api.md, add TODO, change entity -> object 2024-12-25 11:52:24 +01:00
teknomunk
5ced87dc26 Fix typos documentation, add ignore_gravity and liquid_drag options, use vl_projectile.register() for enter pearl, move projectile physics to vl_projectile add hook for future vl_physics support 2024-12-25 11:52:24 +01:00
teknomunk
fdfefd2af8 Resolve more review comments, fix crash 2024-12-25 11:52:24 +01:00
teknomunk
20e228bcac Fix documentation for raycast_collides_with_entities 2024-12-25 11:52:24 +01:00
teknomunk
def9d26ca3 Add API documentation, minor API cleanup 2024-12-25 11:52:24 +01:00
teknomunk
0516b69f68 Fold tipped arrows into standard arrows and handle effects via item definition callback, remove arrows when they collide with entities, update handling of removing projectiles 2024-12-25 11:52:24 +01:00
teknomunk
3273202531 Fix crash on startup 2024-12-25 11:52:24 +01:00
teknomunk
caf09cc7d3 More refactoring to generalize arrow code into projectile 2024-12-25 11:52:24 +01:00
teknomunk
34b9fe88e5 Start mcl_bows:arrow_entity refactor 2024-12-25 11:52:24 +01:00
teknomunk
7ad30c0f4f Remove _thrower from vl_projectile (uses self._vl_projectile.owner instead), reorder some code 2024-12-25 11:52:24 +01:00
teknomunk
2d75a21c10 Finish reworking all items in mcl_throwing 2024-12-25 11:52:24 +01:00
teknomunk
eeaa36e60b Add in vl_projectile, add mcl_util.match_node_to_filter 2024-12-25 11:52:24 +01:00