Commit Graph

870 Commits

Author SHA1 Message Date
metalgearsloth
c0227bcb3b Fix tests (#24809)
* Fix tests

PJB don't look no shed

* weh
2024-02-01 23:04:52 +11:00
Krunklehorn
ed0f2aa221 Client customization late-join spawner priority for arrivals/cryostorage (#24586)
* Initial commit, requires server restart to take effect

* Exposes callbacks directly instead, takes effect immediately

* Cleaned up control flow, swapped cvar for client customization

* Switched to int, dictionary of callbacks, migration

* Update Content.Shared/Preferences/SpawnPriorityPreference.cs

* krunkle stan

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-02-01 21:12:09 +11:00
Kara
cc24ba6a31 Roundstart variation game rules (#24397)
* Raise `StationPostInitEvent` broadcast

* Basic variation pass handling

* standardize names + rule entities

* why does it work like that?

* add to defaults

* light break variation pass

* ent spawn entry

* move some stationevent utility functions to gamerule + add one for finding random tile on specified station

* forgot how statistics works

* powered light variation pass is good now

* station tile count function

* public method to ensure all solutions (for procedural use before mapinit)

* move gamerulesystem utility funcs to partial

* ensure all solutions before spilling in puddlesystem. for use when spilling before mapinit

* trash & puddle variation passes!

* oh yeah

* ehh lets live a little

* std

* utility for game rule check based on comp

* entprotoid the trash spawner oops

* generalize trash variation

* use added instead of started for secret rule

* random cleanup

* generic replacement variation system

* Wall rusting variation rule

* account for modifying while enumerating

* use localaabb

* fix test

* minor tweaks

* reinforced wall replacer + puddletweaker
2024-01-30 21:52:35 -08:00
Emisse
101b4ff364 derotate gemini (#24728)
* Delete Resources/Maps/gemini.yml

* Delete Resources/Prototypes/Maps/gemini.yml

* Update default.yml

* Update PostMapInitTest.cs

* Update MapLoadBenchmark.cs
2024-01-30 03:54:54 -07:00
Emisse
b59950d461 derotate aspid (#24725)
* Delete Resources/Maps/aspid.yml

* Delete Resources/Prototypes/Maps/aspid.yml

* Update default.yml

* Update PostMapInitTest.cs

* Update MapLoadBenchmark.cs
2024-01-30 03:26:02 -07:00
metalgearsloth
54a6151a64 Fix guideentryprototypetests (#24427)
It hits the style update limit so try running a tick and see if we can avoid having too many queued.
2024-01-23 11:30:09 +11:00
LordCarve
c77eb8691d DamageSpecifier Total => GetTotal (#24160)
* DamageSpecifier [Obsolete] Total => GetTotal()

* Remove obsolete Total member from DamageSpecifier.
2024-01-21 18:59:14 -07:00
metalgearsloth
4a13dbea76 Fix some test warnings (#24324)
Extracted from smug's pr.
2024-01-20 17:15:10 +11:00
Nemanja
21e77dffb0 Fix cargo product groups (#24212) 2024-01-20 14:47:08 +11:00
metalgearsloth
ed2fa96ca0 Add netserializable to test doafter (#24313)
Might fix the test failure
2024-01-20 13:53:39 +11:00
Kara
818b07ecf8 Destruction & impact sound rework pass 1 (#24282)
* Various sounds ported

* Replace wall_bonk.ogg

* Metal/metalglass break sound pass

* Replace metalbreak.ogg

* Replace woodhit

* Replcae tap.ogg n some smack uses

* Fix lint

* Replace bang.ogg and some instances of hit_kick.ogg

* couple more

* fix wood sound

* i may be stupid

* le attributing

* bro what

* standardize more destruction sounds

* fix melee hit sound cutting off

* window threshold sounds and remove `destroySound` it literally doesnt exist
2024-01-19 10:33:07 -05:00
metalgearsloth
a7388e5c05 Add trade stations (#23863)
* puters

* Start on fulfillment

* weh

* Smol update

* FTL sound fixes or smth iunno

* Add consoles

* More tweaks

* Make it unanchorable

* final wehs

* weh

* Fix 1 test

* Shrimply bump the distance

* cat
2024-01-19 13:02:28 +11:00
0x6273
7a7d0017b5 Use old reagent dispenser beaker slot ID (#24209)
Change the slot ID back to what it was to keep old map saves with an item in the slot loading correctly.

This also fixes the "You can't put this in the dispenser!" message not appearing when inserting an item without FitsInDispenserComponent because the whitelisted slot name wasn't changed.
2024-01-17 17:30:30 -08:00
Kevin Zheng
9394a26245 Add limited-reagent dispensers (#23907)
* Add limited-reagent dispensers

* Add empty versions for all dispensers

* Fix lint

* Set initial window size so all buttons are visible

* Simplify logic, add parenthesis

* Use localized name for initial labels

* Adjust button style

* Avoid touching items before MapInit

* Remove pre-labeling

* Reduce diff

* Clean up YAML

* Fix test

* Really fix test

* Document

* Adjust based on review

* Add labels for obnoxiously long bottles

---------

Co-authored-by: AWF <you@example.com>
2024-01-17 16:43:48 -05:00
Pieter-Jan Briers
45136ef825 Fix missing [NetSerializable] in SimplePredictReconcileTest (#24161)
This didn't cause any issues because NetSerializer wasn't used in integration tests... until https://github.com/space-wizards/RobustToolbox/pull/4838.
2024-01-16 20:25:07 +01:00
AJCM-git
108f001731 Virtual items cleanup (#23912)
* Virtual items cleanup

* Detail

* Review

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-01-14 21:18:47 +11:00
deltanedas
d1d11d09c7 Add TryGetPrimaryDepartment to jobs system (#23317)
* add primary departments

* make command and station specific secondary

* add a unit test

* fixy

* compile

* webedit ops

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-01-14 19:18:34 +11:00
Pieter-Jan Briers
a6c9c36b68 Dependency update / fixes / skrungle bungle (#23745)
* Give .props files 2-space indents.

* Move to Central Package Management.

Allows us to store NuGet package versions all in one place. Yay!

* Update NuGet packages and fix code for changes.

Notable:

Changes to ILVerify.
Npgsql doesn't need hacks for inet anymore, now we need hacks to make the old code work with this new reality.
NUnit's analyzers are already complaining and I didn't even update it to 4.x yet.
TerraFX changed to GetLastSystemError so error handling had to be changed.
Buncha APIs have more NRT annotations.

* Remove dotnet-eng NuGet package source.

I genuinely don't know what this was for, and Central Package Management starts throwing warnings about it, so YEET.

* Remove Robust.Physics project.

Never used.

* Remove erroneous NVorbis reference.

Should be VorbisPizza and otherwise wasn't used.

* Sandbox fixes

* Remove unused unit test package references.

Castle.Core and NUnit.ConsoleRunner.

* Update NUnit to 4.0.1

This requires replacing all the old assertion methods because they removed them 🥲

* Oh so that's what dotnet-eng was used for. Yeah ok that makes sense.

* Add Robust.Analyzers.Test

* Update submodule

* commit to re-run CI
2024-01-12 23:22:01 +01:00
Emisse
7f02c0ffcc derotate barratry (#23782)
* Delete Resources/Maps/barratry.yml

* Delete Resources/Prototypes/Maps/barratry.yml

* Update default.yml

* Update PostMapInitTest.cs
2024-01-09 21:57:29 +11:00
Emisse
df1d8c36e5 kill machine parts + migrate machine part spawners to salvage loot spawner (#23752)
* kill machine parts

* guidebook and artifact effect

* worst test ive ever seen in my life

* nuke test
2024-01-08 16:24:36 -07:00
iacore
d73c7e9a0a more balanced constructing and unscrewing for metal objects (#21051)
* more balanced constructing and unscrewing for metal objects

- computer frame, machine frame, rack and meatspike can be deconstructed while anchored by screwing
- Computer frames now need time to be constructed.
- it now takes a reasonable time to make a meatspike. If you can construct a machine frame in 2.5, surely you can make a meatspike in 2.

* Fixes test
2024-01-06 00:28:57 -08:00
metalgearsloth
bf79acd127 Salvage magnet revamp (#23119)
* Generic offering window

* More work

* weh

* Parity

* Progression meter

* magnet

* rona

* PG asteroid work

* code red

* Asteroid spawnings

* clams

* a

* Marker fixes

* More fixes

* Workings of biome asteroids

* A

* Fix this loading code

* a

* Fix masking

* weh

* Fixes

* Magnet claiming

* toe

* petogue

* magnet

* Bunch of fixes

* Fix default

* Fixes

* asteroids

* Fix offerings

* Localisation and a bunch of fixes

* a

* Fixes

* Preliminary draft

* Announcement fixes

* Fixes and bump spawn rate

* Fix asteroid spawns and UI

* More fixes

* Expeditions fix

* fix

* Gravity

* Fix announcement rounding

* a

* Offset tweak

* sus

* jankass

* Fix merge
2024-01-04 14:25:32 +11:00
Leon Friedrich
377be6fcca Changes required for frozen event bus PR (#23493)
* Changes required for frozen event bus PR

* Fix RoundEndTest
2024-01-04 13:26:25 +11:00
Leon Friedrich
42ec9b2967 Changes required for engine PR (#23488) 2024-01-04 12:08:23 +11:00
Nemanja
4662d463b8 Chill bounties + fixes (#23411)
* Chill bounties + fixes

* localize

* fix arbitage
2024-01-03 17:34:47 -07:00
metalgearsloth
2166958bd0 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
2024-01-03 17:24:02 +11:00
DrSmugleaf
ac022090b6 Fix ConfigPresetTests.TestLoadAll not handling automatic panic bunker (#23414) 2024-01-02 19:08:50 -08:00
Leon Friedrich
383271c8fa Fix GravityGridTest (#23348) 2024-01-02 17:24:01 +11:00
TemporalOroboros
d23c8d5c19 Revert 'Revert 'Solution Entities'' (#23168) 2023-12-29 08:47:43 -04:00
Emisse
938d6d9945 Revert "Solution Entities" (#23160)
Revert "Solution Entities (#21916)"

This reverts commit d75e743dd7.
2023-12-28 20:45:42 -07:00
Leon Friedrich
c2c76c2035 Try fix random explosion test failures (#23158) 2023-12-28 20:23:41 -07:00
TemporalOroboros
d75e743dd7 Solution Entities (#21916)
* Creates Content.Shared.Chemistry.Solutions
Copies Solution class to new namespace
Obsoletes old Solution class

* Switches over to the Solutions.Solution Solution

* Creates Content.Shared.Chemistry.Containers
Copies relevant components/systems to the new namespace
Obsoletes old versions

* Switches over to the Containers.XYZ namespace

* Creates SolutionSystem and obsoletes old SolutionContainerSystem methods

* Start using SolutionSystem for Solution manipulation

* EnumerateSolutions

* Move TryGetMixableSolution

* Move EnsureSolution to Server

* Create Solution Entities

* Stop using obsolete solution system methods

* Fix prototype component tests

* Add using ..Audio.Systems; back

* Wrap solution container slots in ContainerSlots

* Actually add the slot to the solution container map

* Dirty SolutionContainerComponent when ensuring solutions

* Revert namespace changes

* Remerge SolutionSystem and SolutionContainerSystem

* SolutionContainerManagerComponent refactor

* Avoid wrapping necessary code in DebugTools.Assert as it is removed when compiling for release

* Readd examine reagent sorting

* Fix errors

* Poke tests

* Fix solution names not being applied

* Fix WoolyComponent including statement

* Fix merge skew

* Fix compile errors

* Make reactions use solntities

* Reindent solution class namespace

* Field attribute changes

* AutoGenerateComponentState for SolutionContainerComponent

* SolutionContainerComponent -> ContainedSolutionComponent

* ref ReactionAttemptEvent

* Denetwork preinit solutions

* Misc 1

* Nullable TryGetSolution out vars

* Cache associated solutions

* Fix merge skew

* Use explicit regions in SharedSolutionContainerSystem.Capabilities

* Add debug assert

* Use explicit regions in SharedSolutionContainerSystem.Relay + ref SolutionContainerChangedEvent

* ContainedSolutionComponent.Name -> ContainedSolutionComponent.ContainerName

* SolutionComponent doc comments

* Implicit DataField names and property purge

* ReagentEffect DataField names

* Local variables for readability

* Sort using statements + Entity<T> event handlers

* Fix compile erros

* Fix compile errors

---------

Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
2023-12-28 17:58:14 -08:00
TemporalOroboros
7a77d6d5dd Content ecs containers (#22484) 2023-12-28 01:30:03 -04:00
Leon Friedrich
35ba42af9c Add some tests and fix some miscellaneous bugs (#22836)
* Add some tests and fix some bugs

* Add more helper methods

* remove submodule

* fix merge

* also fix DirtyAll()

* poke
2023-12-28 10:05:20 +11:00
Leon Friedrich
0734a876f9 Try fix organ networking (#23034) 2023-12-28 09:48:10 +11:00
Leon Friedrich
eb04a98294 Update ToolshedTest for engine PR (#22989) 2023-12-28 08:51:42 +11:00
Leon Friedrich
9eaa4c3a5d Make cargo arbitrage test ignore gambling crate (#22943) 2023-12-25 00:15:33 -07:00
Darkie
a3fbab84e6 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>
2023-12-24 17:11:05 +11:00
LordCarve
524dbf9a78 Consistent Absorbent System behavior (#22723) 2023-12-22 11:02:09 -08:00
Nemanja
0a81038a17 mild reagent prototype cleanup + other misc garbage (#22630) 2023-12-16 19:34:13 -08:00
Emisse
652b6812b8 Reach (#22519)
* reach update

* proto

* minor fixes

* poolz

* e shuttle fixe

* webedit ops

* Update PostMapInitTest.cs

* gay
2023-12-14 22:38:05 -07:00
Emisse
000c776f47 delete kettle files (#22338)
* delete kettle file

* Delete Resources/Prototypes/Maps/kettle.yml

* bitch
2023-12-11 04:54:48 -07:00
Pieter-Jan Briers
46e36934a6 High-latency DB testing stuff (#22282) 2023-12-10 16:30:12 +01:00
metalgearsloth
88de2e8407 Fix MapPainter (#22290) 2023-12-10 22:19:26 +11:00
Nemanja
2553bade1a Narsie test bandaid (#22206) 2023-12-07 16:58:08 +11:00
TemporalOroboros
0c63f2ee57 Make test EntitySpecifiers ignore entities with null prototypes (#22174) 2023-12-06 20:09:44 -05:00
Nemanja
cc8984d096 Grid Inventory (#21931)
* Grid Inventory

* oh boy we keep cracking on

* auto insertion is kinda working? gross, too!

* pieces and proper layouts

* fix the sprites

* mousing over grid pieces... finally

* dragging deez nuts all over the screen

* eek!

* dragging is 90% less horrendous

* auto-rotating

* flatten

* Rotation at last

* fix rotation and change keybind for removing items.

* rebinding and keybinding

* wow! look at that! configurable with a button! cool!

* dragging is a bit cooler, eh?

* hover insert, my beloved

* add some grids for storage, fix 1x1 storages, fix multiple inputs at once

* el navigation

* oh yeah some stuff i forgor

* more fixes and QOL stuff

* the griddening

* the last of it (yippee)

* sloth review :)
2023-12-04 16:04:39 -07:00
TsjipTsjip
95b30c821a Kettle -> Gemini: RnD and Atmos revamp (#21866)
* Add files via upload

* Add gemini to map_attributions.txt

* Create gemini map proto

* Derotate Kettle, rotate Gemini

* Add Gemini to PostMapInitTest.cs

* Gemini locstrings

* Upload gemini map file

* Upload current master version of Kettle for historic record

* Continue testing Kettle as it is not removed entirely

* Fix Gemini prototype

* Christmas on Gemini station
2023-12-01 13:17:08 -07:00
metalgearsloth
30f4a3ca6d Fix SpawnAndDeleteEntityCountTest heisentest (#21975) 2023-11-30 22:08:08 +11:00
metalgearsloth
0ded865ee7 Use PoolManager testmap for EntityTest (#21968) 2023-11-29 13:32:59 +11:00