Commit Graph

46 Commits

Author SHA1 Message Date
pathetic meowmeow
24f4b40881 Don't enqueue construction events without validation (#39869) 2025-09-03 14:29:50 -07:00
pathetic meowmeow
39cb27fe21 Borg hands & hand whitelisting (#38668)
* Borg hands & hand whitelisting

* yaml linted

* yaml linted (x2)

* yaml linted (x3)

* my storage tests so pass

* no need for SetCount

* ok new stuff you can get fixed too

* oops

* staque

* what if we addressed feedback

* my place so holder

* what if we addresesd feedback

* what if i did it correctly

* terminating or deleted
2025-08-12 15:21:42 -07:00
metalgearsloth
0d4f9640b5 CompFactory updates (#37559) 2025-05-20 01:08:55 -04:00
Errant
68d0a41bb4 fix unremovable items used in construction (#37292) 2025-05-09 15:43:38 +03:00
Plykiya
190ceda02e Add BreakOnDropItem, update do afters, remove unnecessary declarations (#30361)
* Add BreakOnDropItem, update do afters, remove unnecessary declarations

* bola

* Changed my mind about the nuke

* gennies too

* Make the comments more clear.

* Sorry for the trailing commas

* Revert "Sorry for the trailing commas"

This reverts commit e60fd9a30977393df3344948e6d5c0ce035723cd.

---------

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-08-08 13:39:46 +02:00
Nemanja
b3a64d4bcd Add slowdown to low temperatures (#29692)
* TemperatureSpeed component

* temperature slowdown prediction (done right)

* remove unnecessary changes

* that too

* get in line

* make it readonly

* auto pause
2024-08-05 18:07:02 +10:00
Nemanja
a47c5561a9 add fuel costs back to finishing welding (#27030)
* add fuel costs back to welding

* ack

* meh

* eek!
2024-04-19 19:20:30 -04:00
nikthechampiongr
362d56981f Simplify DoAfterArgs behavior for movement and distance checks (#25226)
* Merge BreakOnWeightlessMove and BreakOnMove. Provide different theshold for weightless movement.

* Adjust WeightlessMovementThresholds. Put a thing I forgot to put in the doafterargs.

* Make DoAfterArgs only use OnMove to determine whether to check for
movement and MoveThreshold to determine the threshold regardless of
weightlessness. Gave DistanceThreshold a default value which will always
be checked now.

* Fix issue introduced by merge.

* Use interaction system for determining whether a distance is within range

* Fix incorrect doafter args introduced by previous merge.
Forgor to commit these.

* Exorcise ghost.

The execution system should have been deleted when I merged previously.
For a reason I cannot comprehend it came back, but only the execution
system.

* Exorcise ghost Pt. 2

* Allow for movement check to be overriden in zero g and adjust doafter args where needed.

You can now override checking for movement in zero g with the BreakOnWeightlessMove bool. By default it will check.
The following doafters were made to ignore the movement check in zero g:
- Healing yourself with healing items,
- Removing embedded projectiles,
- Using tools like welders and crowbars

* Adjust distance for cuffing/uncuffing to work. Make injections not break on weightless movement.

* Fix evil incorrect and uneeded comments
2024-03-19 21:09:00 +11:00
Pieter-Jan Briers
68ce53ae17 Random spontaneous cleanup PR (#25131)
* Use new Subs.CVar helper

Removes manual config OnValueChanged calls, removes need to remember to manually unsubscribe.

This both reduces boilerplate and fixes many issues where subscriptions weren't removed on entity system shutdown.

* Fix a bunch of warnings

* More warning fixes

* Use new DateTime serializer to get rid of ISerializationHooks in changelog code.

* Get rid of some more ISerializationHooks for enums

* And a little more

* Apply suggestions from code review

Co-authored-by: 0x6273 <0x40@keemail.me>

---------

Co-authored-by: 0x6273 <0x40@keemail.me>
2024-02-13 16:48:39 -05:00
deathride58
f5c40c3623 Fixes construction graphs proccing while being microwaved (#23835)
* Fixes construction graphs proccing while being microwaved

* git those indents in line

* We knew we were missing something!
2024-01-12 01:42:41 -07:00
TemporalOroboros
7a77d6d5dd Content ecs containers (#22484) 2023-12-28 01:30:03 -04:00
deltanedas
68aa295a38 Add internal temperatures for cooking meats (#20659) 2023-10-20 12:21:49 -08:00
chromiumboy
acc9c8940b Use construction graphs for hacking protections (#20265) 2023-10-05 19:15:03 -08:00
chromiumboy
d04a58f7b3 Fix prying door hacking protections (#20664) 2023-10-01 13:08:02 -08:00
metalgearsloth
5a0fc68be2 Content update for NetEntities (#18935) 2023-09-11 09:42:41 +10:00
Nemanja
98fa00a21f Borgs (#18136)
* Laws

* positronic brain and PAI rewrite

* MMI

* MMI pt. 2

* borg brain transfer

* Roleban support, Borg job (WIP), the end of mind shenaniganry

* battery drain, item slot cleanup, alerts

* visuals

* fix this pt1

* fix this pt2

* Modules, Lingering Stacks, Better borg flashlight

* Start on UI, fix battery alerts, expand activation/deactivation, low movement speed on no power.

* sprotes

* no zombie borgs

* oh fuck yeah i love a good relay

* charger

* fix the tiniest of sprite issues

* adjustable names

* a functional UI????

* foobar

* more modules

* this shit for some reason

* upstream

* genericize selectable borg modules

* upstream again

* holy fucking shit

* i love christ

* proper construction

* da job

* AA borgs

* and boom more shit

* admin logs

* laws redux

* ok just do this rq

* oh boy that looks like modules

* oh shit research

* testos passo

* so much shit holy fuck

* fuckit we SHIP

* last minute snags

* should've gotten me on a better day
2023-08-12 16:39:58 -05:00
Ben
c858c76341 Anchorable shared (#17422)
Co-authored-by: BenOwnby <ownbyb@appstate.edu>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2023-06-29 22:35:54 +10:00
deltanedas
f9c97e4324 welder stuff (#17476) 2023-06-27 21:46:48 -04:00
Leon Friedrich
d1d13f4ef1 Fix misc construction bugs (#15600) 2023-04-21 14:01:35 +10:00
Leon Friedrich
21378f6e41 Fix misc bugs (#15314) 2023-04-12 10:18:30 +10:00
Leon Friedrich
507b0d7320 Fix computer deconstruction (#15187) 2023-04-08 10:54:28 +10:00
Leon Friedrich
b9b8180131 DoAfter & misc interaction fixes (#15144) 2023-04-05 10:19:28 +10:00
Leon Friedrich
19277a2276 More DoAfter Changes (#14609)
* DoAfters

* Compact Clone()

* Fix mice and cuffables

* Try generalize attempt events

* moves climbabledoafter event to shared, fixes issue with climbable target

* Fix merge (cuffing)

* Make all events netserializable

* handful of doafter events moved

* moves the rest of the events to their respective shared folders

* Changes all mentions of server doafter to shared

* stop stripping cancellation

* fix merge errors

* draw paused doafters

* handle unpausing

* missing netserializable ref

* removes break on stun reference

* removes cuffing state reference

* Fix tools

* Fix door prying.

* Fix construction

* Fix dumping

* Fix wielding assert

* fix rev

* Fix test

* more test fixes

---------

Co-authored-by: keronshb <keronshb@live.com>
2023-04-02 21:13:48 -04:00
keronshb
e9dbcc4278 Another round of DoAfter fixes (#14295) 2023-03-01 11:51:42 +11:00
Leon Friedrich
7430a3dba2 Construction debug logs (#14257) 2023-02-26 04:14:26 +11:00
keronshb
9ebb452a3c DoAfter Refactor (#13225)
Co-authored-by: DrSmugleaf <drsmugleaf@gmail.com>
2023-02-25 01:01:25 +01:00
Chief-Engineer
6f58f5a36c Improve construction logs (#13146) 2023-01-20 08:17:57 -08:00
Timothy Teakettle
a7a4137cc7 moves steak cooking to use construction graphs, new temperature construction graph step (#13219) 2023-01-20 08:09:13 -08:00
metalgearsloth
1b0e50ae19 Remove last component.Name calls (#13593) 2023-01-19 13:57:18 +11:00
Vera Aguilera Puerto
4e3246d278 Slight construction cleanup. (#12614) 2022-11-16 05:10:27 -06:00
Nemanja
b6135d3be5 Construction warning cleanup (#12256) 2022-10-30 17:48:53 +11:00
Júlio César Ueti
137e79ee4c Adds logging to stripping and construction starting (#11952) 2022-10-16 17:32:00 +11:00
Leon Friedrich
a356071f41 Use IRuntimeLog in ConstructionSystem (#11413) 2022-09-19 15:01:33 -05:00
Leon Friedrich
b136f18ab7 Construction error handling changes (#11400) 2022-09-19 16:10:10 +10:00
Júlio César Ueti
ee969c9799 Adds even more important Admin Logging (#10268) 2022-08-08 09:21:56 +10:00
Vera Aguilera Puerto
67106dedb9 ConstructionSystem handles InteractUsing before AnchorableSystem. (#8700) 2022-06-08 09:50:23 +02:00
wrexbe
bc68ac96dd Cleanup the namespaces (#8132) 2022-05-13 17:59:03 +10:00
Vera Aguilera Puerto
380bb89f83 Documents more ConstructionSystem methods. (#7246) 2022-03-24 21:00:39 -07:00
Vera Aguilera Puerto
c76414362d Account for graph actions being able to delete the entity in ChangeNode.
Fixes an exception that occurs if a node action deletes a construction.
2022-03-05 10:59:01 +01:00
mirrorcult
ec4d4688c7 Seal/abstract/virtual everything (#6739) 2022-02-16 18:23:23 +11:00
DrSmugleaf
2a3b7d809d Fix 3000 errors 2021-12-05 18:09:01 +01:00
Vera Aguilera Puerto
5cd42c9ad6 Inline UID 2021-12-03 15:53:09 +01:00
Vera Aguilera Puerto
8b57bafcd1 StackSystem uses EntityUid for Split and Spawn 2021-11-09 15:35:03 +01:00
Vera Aguilera Puerto
5a5006e4cf ConstructionGL2 Part 2: Better guided steps and recipes. (#5103) 2021-11-02 11:24:32 +01:00
Vera Aguilera Puerto
f12cec3f98 Fix construction DoAfter results not setting current edge index.
Fixes #5061
2021-10-28 11:21:55 +02:00
Vera Aguilera Puerto
189a5c7847 ConstructionGL2 Part 1: ECSification, events and steps. (#5017)
- Completely rewrited the `ConstructionComponent` logic to be ECS, *without* looking too much at the original implementation.
    - The original implementation was dirty and unmaintainable, whereas this new implementation is much cleaner, well-organized and maintainable. I've made sure to leave many comments around, explaining what everything does.
- Construction now has a framework for handling events other than `InteractUsing`.
    - This means that you can now have CGL steps for things other than inserting items, using tools...
- Construction no longer uses `async` everywhere for `DoAfter`s. Instead it uses events.
- Construction event handling occurs in the `ConstructionSystem` update tick, instead of on event handlers.
    - This ensures we can delete/modify entities without worrying about "collection modified while enumerating" exceptions.
    - This also means the construction update tick is where all the fun happens, meaning it'll show up on our metrics and give us an idea of how expensive it is/how much tick time is spent in construction.
- `IGraphCondition` and `IGraphAction` have been refactored to take in `EntityUid`, `IEntityManager`, and to not be async.
- Removes nested steps, as they made maintainability significantly worse, and nothing used them yet.
- This fixes #4892 and fixes #4857

Please note, this leaves many things unchanged, as my idea is to split this into multiple PRs. Some unchanged things:
- Initial construction code is the same. In the future, it'll probably use dummy entities.
- Client-side guided steps are the same. In the future, the server will generate the guided steps and send them to clients as needed, caching these in both the server and client to save cycles and bandwidth.
- No new construction graph steps... Yet! 👀
2021-10-26 16:38:03 +02:00