Commit Graph

138 Commits

Author SHA1 Message Date
Pieter-Jan Briers 176e9b0a81
THE RETURN OF ITEM STATUS (#22986)
* THE RETURN OF ITEM STATUS

Item status is now inline with the hands again. You can now see item status for both hands at once.

If you have more than 2 hands, the last active hand of that side is displayed in the respective item status.

The item status for the active hand is also highlighted.

Item status has been given a new look so it looks unique and matches every UI theme.

* Shrink item status to 125px

This is going to require fixing the existing controls. Do that later.

* New bullet item status rendering

sex

* Make gun item status look just a little bit nicer.

Avoid only one or two bullets ending up on a single row of an item status.

* Delete Eris theme files

* More improvements

Fixed the fact that left/right were flipped around when assigning status panel locations. Involved renaming all the UI textures.

Redid how content margins are set from the theme. Less complex and cleaner now.

Made the item name always left-aligned, just looks better since other UI elements don't adapt anyways.

* Compact down item status text

Now it fits 3 lines of text on one line. Yay.

This is achieved by compacting RichTextLabels by reducing their line height and giving them a negative bottom margin.

* Add item status sprites for Ashen theme.

* Add status control to show beaker/bucket/jug solution/transfer volumes

Also PollingItemStatusControl I'll be using that more.

* Fix welder item status, clean up welder code

The item status control implementation was ancient and bad. That's why it was buggy.

Removed all the complex dated networking stuff for welders, we just sync the solution contents now anyways so none of that is needed anymore. This moves a buncha stuff to shared and just removes code.

Cleanup. The code was doing some really dumb stuff.

* Spray bottles show contents in item status.

* cowtools

* Fix plasmafire and clockwork themes.

Actual git gaslighting wtf.

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

(cherry picked from commit 58f025ba8043bcf5c32204b08eec8ae9e5d2bd41)
2024-04-21 23:41:08 +02:00
Nemanja 0d88c372e9
add fuel costs back to finishing welding (#27030)
* add fuel costs back to welding

* ack

* meh

* eek!

(cherry picked from commit a47c5561a9632b6577abdc252f712d7f2da823e6)
2024-04-21 23:20:07 +02:00
Leon Friedrich 4e661636d7
Misc ItemToggleSystem changes (#26489)
* Minor ItemToggleSystem tweaks

* Update visuals on startup

* Remove SetIgnited

* Misc toggle fixes

* Update ItemToggleHotComponent.cs

(cherry picked from commit 8a6879bb1b660425faaa30e6bb20746e47603495)
2024-04-07 14:04:40 +02:00
Jake Huxell efcdc42666
Objects such as lighters/welders are now able to be dropped in disposal units. (#26463)
Don't always mark after interact event as handled for welder tools. Done with a view towards allowing disposal interaction post tool system handling.

Co-authored-by: MQuatermain <misterquatermain@pm.me>
(cherry picked from commit ebddef7675269ea4c354673a888a2c8f6e418548)
2024-03-27 18:38:54 +01:00
Debug 9a246f9527
Remove drones, fix InnateToolSystem (#25372) 2024-03-05 09:34:57 +01:00
Nemanja 9bb057959b
Generalize tile prying to any tool quality (#24432)
* Generalize tile prying to any tool quality

* ballin

(cherry picked from commit 5e2e652165ee7ef3efb0d0f244d665049f5bd1c0)
2024-01-27 23:50:17 +01:00
Kara 03b3e36d43
Examine prediction (#23565)
* Initial prediction

* new group handling

* groups for all examines that use multiple rn

* compile

* why was it doing this??

* handle newlines with sorting properly

(cherry picked from commit 0ae3858b69b695697ea9300609460f8ddb70ebbf)
2024-01-26 21:48:02 +01:00
metalgearsloth b1738dcf9c
AutoCompState + ItemToggle fixes (#23422)
* AutoCompState + ItemToggle fixes

Fix a lot of the comp states that are never actually networked and also cleaned up ItemToggle events a bunch. ItemToggle will still need some future work for lights and sounds.

* Also catch these

(cherry picked from commit 2166958bd0c23b7b9fd5c699eaeee910d1db62bf)
2024-01-26 21:27:29 +01:00
TemporalOroboros ce27944275
Revert 'Revert 'Solution Entities'' (#23168)
(cherry picked from commit d23c8d5c19e56a582b6b12f832bd318efbdac7c7)
2024-01-23 23:00:42 +01:00
qwerltaz cd5c92d818
Fix flammables air ignition (#23063)
* Fix welder ignition

* fix mobs on fire hotspot expose frequency

* fix shotgun pellets ignition

* ensure ignitionComp on flammable init

* \n

* Revert "ensure ignitionComp on flammable init"

This reverts commit 6915dcdc

(cherry picked from commit 3f9102839579506e8bf71f5fbf48c92328104e58)
2024-01-22 18:45:42 +01:00
Darkie 03abecd365
ItemToggle system expansion (#22369)
* Fixed EnergySword and variants having incorrect sound on attacking when in their Off state.

* Removed the unused ItemToggle from the serverside and created a new shared ItemToggleComponent and System, now used for the e-blade family of items. Also added e-blade hum and swing sounds. Thanks Sloth for the initial code!

* Changing Stunbaton system to include the itemToggle system.

* Adapted changes that have come up in the meantime.

* Changed damagespecifier to be serializable and autoNetworked in melee weapon components. Fixes a bug that makes it so client-side, damage values are not updated on toggle.

* Made the ItemToggleSystem have both a shared and a server component. Ported the Stun Baton and Stun Prod to the new toggleable system. Added a failure to activate noise component.

* Ported the welders to the new item toggle system. Set it so deactivated damage and item size default to the item's regular options.

* Removed unnecessary usings.

* Small modification to the stun prod.

* Made the integration test use the new method to turn the welders on.

* Fixed a few testing issues, applied a few changes requested by Delta.

* Updated Stunbaton code for consistentcy when it comes to calling the itemToggle component.

* Removed a redundant return; as per Delta.
Made examining the stun baton for charge rely on the battery component instead.

* Removed the welder visualizer system, now using the generic one. Removed some unused usings. Removed the welder visuals and layers.
Ported lighters to the new system.
Added zippi (sic) lighters.

* Renamed variables used to make them less generic.

* Simplified the light update code.

* Fixed the unit test to use the itemToggle system for welders now.

* Made the name shorter. I can't tell if the welding damage when interacted with actually does anything though. I can't figure out how to trigger it.

* Fixed some YML issues.

* Added a client side item toggle system just to make the shared code run on local UID's too.

* Fixed some more Yaml.

* Made the Zippi lighter have its own parent item, so it doesnt' conflict with the random pattern on the regular lighter.

* Made the zippi lighter its own in-hand sprites.

* Added a summary for the activated property in itemtoggle component.

* Fixed a typo in the itemToggle Component.

* Fixed a typo.

* Added to the remarks for the ItemToggleComponent.

* Fixed up the lighter yaml to make it use a generic term instead of a toggle layer enum for the random skin.

* Fixed a bug I introduced accidentally with the humming sound.

* Removed 2 unnecessary events from the ItemToggleSystem and component.

* Fixed a bug by only making the server run the item activation code, since the client cannot predict whether or not the activation will be cancelled.

* Cleaned up some names and functions getting called.

* Renamed a couple of variables and removed the explicit datafields from the component. Removed "activated: false" from yml since they're already deactivated by default.

* Added an IsActivated function, used it in the welder and stun baton systems code.
Refactored welder code to remove the WelderToggle event, now using the ItemToggleActivatedEvent instead for eye protection check.

* Fixed a typo. Added some comments.

* Split the ItemToggle into smaller components.
Changed the items that used the toggle system to work with the smaller components.
Made the mirror shield reflect energy shots with a 95% chance.

* Fixed the namespaces for the server components and whatnot.

* Fixed a doubled deactivation sound from using activated wieldable items (like the double Esword).
Fixed wrong yml with the e-dagger.
Fixed the disarm malus code.

* Added the zippo lighter to the detective's trench coat.

* Removed the default hit sound for the double e-sword since it was unnecessary.

* Changed e-sword damage numbers to be in line with the changes made by Emisse.

* Made no damage sounds be autoNetworked, so it changes can be changed on activation/deactivation of items.
Made Welders and Eswords sound like themselves but quieter if they hit for 0 damage, instead of taps.
You can choose what sound to play when a weapon does 0 damage when activated now.
Fixed a bug with swing sounds.

* Typo.

* Fixed a bug where the welder would blind you if you used it while it was off.

* Created a single abstract method called when an item has completed its toggle.

* Update Content.Server/Eye/Blinding/EyeProtection/EyeProtectionSystem.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Fixed a comment.

* Made most component variables readOnly for ItemToggle. There is no need to be able to change them from within the variable viewer.

* Removed trailing white spaces.

* Made the Use a field instead of a property in the itemToggleActivation/Deactivation attempt events.

* Small fixes.

* Removed ForceToggle, just use the toggle method instead.

* Fixed a bug with item sharpness staying even after getting deactivated, if the item gained sharpness that way (esword).

* Used ProtoId in the welder component.

* Made damage NetSerializable as well.

* Added networking and data fields to a couple of components.

* Made component variables autonetworked. Added some comments.

* Moved the events that modify item components on toggle to events, handled (where possible) in the systems linked to said components.

* Made all the component variables readWrite again.

* Added the component get to the WelderStatus.

* Added a predictable bool to the item toggle component.

* Replaced the Activated/Deactivated events with ToggleDone, with an Activated argument. Used that to simplify some systems.

* Added a reflect update raise event.

* Removed the Zippo changes. To add in a later PR.

* Removed the zippo from meta.json too.

* Small fix.

* Another small fix.

* Fixed the wieldable system thing in ItemToggle.

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

(cherry picked from commit a3fbab84e645a16a30845aa1e683e7ffc0e3b8cd)
2024-01-22 18:29:05 +01:00
metalgearsloth b1ee2d48ff Unrevert audio (#21330)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2023-12-02 20:16:36 +01:00
metalgearsloth 4cf7f4f1c9 Predict tile-prying (#21167) 2023-10-23 23:54:01 +02:00
DrSmugleaf 9cc8a7fc81 Remove 700 usages of Component.Owner (#21100) 2023-10-20 15:31:13 +02:00
TemporalOroboros 8c55d3e5ce Moves SolutionContainerManagerComponent to Shared. (#20944) 2023-10-14 22:07:17 +02:00
metalgearsloth d084dd2efb Fix component constraints (#20241) 2023-09-27 21:59:12 +02:00
Doru991 2c041c1a41 welder fix (#20090) 2023-09-27 21:59:12 +02:00
metalgearsloth 21fdea5e5a Remove lights compref (#19531) 2023-09-27 21:59:12 +02:00
metalgearsloth c9648da984 Content update for NetEntities (#18935) 2023-09-27 21:59:12 +02:00
Leon Friedrich e4ca6f4fb9
Allow solutions to store extra reagent data (#19323) 2023-09-05 07:55:10 +10:00
metalgearsloth db1ff07821
Weldable cleanup (#19809) 2023-09-05 00:07:01 +10:00
metalgearsloth 735626654a
Remove FixtureId (#19280) 2023-08-23 18:55:58 +10:00
DrSmugleaf a88e747a0b
Refactor serialization copying to use source generators (#19412) 2023-08-22 18:14:33 -07:00
Chief-Engineer 335e0230f2
Add placement logs (#18709)
* add placement logs

* add tile log type

* add support for spawn command

a little janky because the log message isn't entirely accurate when it's the result of a command use

* move method to ActorSystem.cs

* switch to TryGet and outs instead of multiple returns
2023-08-14 23:11:54 -06:00
chromiumboy 636819f4e3
Hacking protections for airlocks (#18894)
* Adds the ability to better protect to the internal wiring of airlocks
- Achieved by opening the maintenance panel, adding either steel or plasteel to the airlock, then welding the plate in place
- To access the wiring, the plating must be cut with a welder and then pried out with a crowbar

* Code revisions
- Cleaned up the code
- Cutting the security grille can now shock you
- Atmospherics and Security dept airlocks start with a medium level of protection (a welded steel plate)
- Command dept airlocks start with a high level of protection (a welded plasteel plate and electrified security grille)

* Code revision
- Accounted for a potentially null string

* Update Content.Server/Construction/Completions/AttemptElectrocute.cs

Co-authored-by: Slava0135 <40753025+Slava0135@users.noreply.github.com>

* Update ChangeWiresPanelSecurityLevel.cs

Adjusted scope

* Update Content.Shared/Wires/SharedWiresSystem.cs

Co-authored-by: Slava0135 <40753025+Slava0135@users.noreply.github.com>

* Update Content.Shared/Wires/SharedWiresSystem.cs

Co-authored-by: Slava0135 <40753025+Slava0135@users.noreply.github.com>

* Update ChangeWiresPanelSecurityLevel.cs

Removed get / setter and added [ValidatePrototypeId] attribute

* Update ChangeWiresPanelSecurityLevel.cs

Set security level to "Level0" as the default

* Update airlock.yml

Removed 'super max' level of security

* Update WiresPanelSecurityLevelPrototype.cs

* Update WiresSystem.cs

Added check for WiresAccessible to OnInteractUsing

* Update AttemptElectrocute.cs

File scoped namespace

* Update ChangeWiresPanelSecurityLevel.cs

File scoped namespace

* Update AirlockSystem.cs

File scoped namespace

* Update SharedWiresSystem.cs

Removed boiler plate 'OnGetState' and 'OnHandleState'

* Update WiresPanelComponent.cs

Implemented AutoGenerateComponentState

* Removed unnecessary usage references

* use TryCloseAll when wires not accessible

* minor changes to AttemmptElectrocute

* lets try all 7 levels

* fix indent in airlock graph

* fix indent 2

---------

Co-authored-by: Slava0135 <40753025+Slava0135@users.noreply.github.com>
Co-authored-by: Slava0135 <super.novalskiy_0135@inbox.ru>
2023-08-10 11:33:03 +03:00
Ilya246 9261cef915
fire axe plating (#18087) 2023-07-17 01:47:20 -06:00
Leon Friedrich 126f5d6dae
Fix mime wall & turf/tile helper issues. (#17844) 2023-07-06 14:43:49 +10:00
deltanedas f9c97e4324
welder stuff (#17476) 2023-06-27 21:46:48 -04:00
Chief-Engineer f9f8bb2f1c
add tile pry and place logs (#17461) 2023-06-19 17:04:30 +10:00
Chase Maguire 8cd6067d49
Changing default fuel consumption for weldable components, and increasing non-default instances by two units of fuel (#17350) 2023-06-18 15:56:09 -06:00
metalgearsloth cd487b66e4
Content mapmanager query changes (#16894) 2023-05-28 23:22:44 +10:00
Nemanja dd044f4a91
Make melee damage not go through MeleeHitEvent.cs (#16881)
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2023-05-28 17:03:25 +10:00
20kdc ea64b86331
Remove plural BaseTurfs as a thing in favour of BaseTurf (#16560) 2023-05-19 17:10:56 +10:00
Dawid Bla 0d74c2d8f6
Fix 0.25sec doafters (#15918) 2023-04-29 17:50:31 -04:00
Leon Friedrich 21378f6e41
Fix misc bugs (#15314) 2023-04-12 10:18:30 +10:00
metalgearsloth 317a4013eb
Puddles & spreader refactor (#15191) 2023-04-10 15:37:03 +10:00
DrSmugleaf b947856431
Remove hands component reference (#15197) 2023-04-07 11:21:12 -07: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
08A 4290577d5d
Fix welder interaction (#14704) 2023-03-23 13:08:46 -04:00
Leon Friedrich 2f88173730
DoAfter and other bugfixes (#14669) 2023-03-15 13:05:53 +11:00
Rane b450b4c0e0
Welding airlocks changes their layer (#13440) 2023-03-13 15:26:20 -04:00
Chief-Engineer 017fb28ce3
Add atmos ignition logs (#14216) 2023-02-28 16:43:24 -04:00
keronshb ec739c24da
DoAfter Refactor Fixes (#14278)
* Doafterfixes

* Injector blocker
2023-02-25 23:33:06 -06:00
keronshb 9ebb452a3c
DoAfter Refactor (#13225)
Co-authored-by: DrSmugleaf <drsmugleaf@gmail.com>
2023-02-25 01:01:25 +01:00
Leon Friedrich 75a559fa55
Update radio prefix parsing (#13777) 2023-02-19 04:27:56 +11:00
jicksaw 845998e089
Fix unlit welders starting fires (#13949) 2023-02-12 21:16:35 +00:00
Visne 5a5a3afbb1
Remove some obsolete AppearanceComponent method usages (#13726) 2023-02-02 12:34:53 -04:00
Chief-Engineer d6228d7a4c
Add welder toggle logs (#13303) 2023-01-20 08:05:05 -08:00
Visne c6d3e4f3bd
Fix warnings and code cleanup/fixes (#13570) 2023-01-19 13:56:45 +11:00
gus 76498fcc54
IgnitionSourceComponent added (#13555)
Co-authored-by: Jezithyr <6192499+Jezithyr@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
2023-01-18 00:45:54 -08:00