Simple-Station / Einstein-Engines

A Space Station 14 upstream repository, inspired by Baystation12.
https://einstein.simplestation.org
GNU Affero General Public License v3.0
24 stars 49 forks source link

Port All Carrying/PseudoItem/EscapeInventory Tweaks From DeltaV #484

Open Mnemotechnician opened 5 days ago

Mnemotechnician commented 5 days ago

Description

This cherry-picks the following two PRs of mine from delta-v:

Encompassing a total of 8 distinct changes:

  1. Fixes dropping the carried person when walking to a different grid (from station to shuttle or vice versa. Walking into space however will still make you drop them) and also makes sure that pressing shift while being carried does not make you escape.
  2. Ensures that the carried person is always centered relative to the parent (under certain conditions, such as walking near a gravitational anomaly, their position can change, and that leads to really weird effects)
  3. Fixes the mass contest in CarryingSystem that caused stronger entities to take longer to escape than weaker ones.
  4. Adds popups for when you're getting picked up or being stuffed into a bag as a pseudo-item (e.g. a felinid)
  5. Adds an action to stop escaping an inventory. This action gets added to your action bar when you attempt escaping and gets removed when you stop or escape. It applies both to carrying and items (hampsters, felinids, whatever else).
  6. Adds a sleep action for pseudo-items stuffed inside a suitable bag. The bag must have a special component, which is added to the base backpack item and thus inherited by all soft bags (duffels, satchels, etc). Contrary to a popular belief, sleeping IS PURELY COSMETICAL and does not provide healing. (Beds provide healing when you buckle into them and that healing does not depend on whether or not you're sleeping)
  7. Makes it so that when you try to take a pseudo-item out of the bag (e.g. a felinid), you automatically try to carry them (if you don't have enough free hands, they will be dropped on the floor like usually), and enables you to insert the carried person into a bag, but only if they're a pseudo-item (e.g. felinid).
  8. Allows pseudoitems to be inserted into bags even when there are other items (as long as there's enough space)

For technical details and video showcases, see the original PRs

This PR is split into separate commits so different parts can be reverted if deemed unneccessary.


Changelog

:cl:

github-actions[bot] commented 5 days ago

RSI Diff Bot; head commit 1ce3df274a4a50939d1facab90cb49685ade40e6 merging into 40d411bbbc4263731629e123e58eb75bdd3cbbbd This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/Actions/escapeinventory.rsi

| State | Old | New | Status | --- | --- | --- | --- | | cancel-escape | ![]() | ![](https://raw.githubusercontent.com/Mnemotechnician/Einstein-Engines/1ce3df274a4a50939d1facab90cb49685ade40e6/Resources/Textures/Actions/escapeinventory.rsi/cancel-escape.png) | Added

Edit: diff updated after 1ce3df274a4a50939d1facab90cb49685ade40e6

VMSolidus commented 5 days ago

I haven't given this a deeper look than only a cursory glance, but I'm fascinated by the fact that this system for whatever baffling reason has its own private implementation of the original (bad) MassContest code. This is itself terrible, and it's not even the fault of the DeltaV PR, they're just swapping multiply with divide. I'm not going to deny moving it here because of that, but whichever comes first, this or the Reworked Mass Contests, the other is getting changed and I'm yeeting the damn carrying system implementation of Old MassContest.

Mnemotechnician commented 5 days ago

should all be in base game folders with comments removed

image