Squeak Through 2


Squeak through entities that you can't walk between normally. A highly configurable and more compatible version of Squeak Through, written from scratch.

Tweaks
a day ago
1.1 - 2.0
214K
Transportation

b ✅ Conflict with the IR3 Patchset

a day ago
(updated a day ago)

Hi Green,

Could you remove lines 3-18 from compatibility.lua which pertain to IndustrialRevolution3? It's assigning the pipe_connections positions to be outside of the entities' collision boxes, which prevents the game from loading.

I can't imagine why that code was originally written. At the very least, you could add a version check, either for Factorio < 2.0, or for IndustrialRevolution3 < 4.0.0.

EDIT: I also noticed that the original "Squeak Through" is marked incompatible from IR3's side, do you happen to know why?

4 hours ago

I thought I responded to this, but apparently I did not. I've removed the offending code in 0.1.3, thanks for the report.
The reason that code exists and the reason the original Squeak Through mod was marked incompatible are the same reason, believe it or not:

Squeak Through works by reducing the size of all collision boxes of entities that collide with the player, for obvious reasons.
Separately, the engine's pipe connection logic relies on the collision box of an entity and a connection point to determine what actually connects.

In 1.1, pipe connections were defined outside an entity (which was changed in 2.0), and are usually defined at the center of an adjacent tile.
IR3 had a couple 1x1 machines that didn't do this, instead having connection points defined at 0.25 tiles away from the center of an adjacent tile, probably for whatever personal aesthetic reasons.

This worked normally for vanilla pipes, however due to the pipe collision box extending with connections behavior, the collision box for pipes needs to be very small in order for the player to still be able to walk between them after the extension. With Squeak Through enabled, the pipe collision box was small enough where the connection points from IR3's offending machines were outside of it.

This resulted in IR3 receiving a few bug reports about those machines not connecting to pipes when built in a certain order, and instead of moving the pipe connections to the middle of the tile, Squeak through was marked as incompatible.

When I made this mod in 1.1, I decided to figure out why IR3 was incompatible, finding the above reason, and hopefully you now can imagine why that code was originally written.

New response