Files
crystall-punk-14/Content.Server/GameObjects/Components/Disposal/DisposalHolderComponent.cs

195 lines
5.6 KiB
C#
Raw Normal View History

Add the trash man (#1367) * Add disposal.rsi * Rename disposal resource to disposal.rsi and create basic components * Add disposal nets * Add pushing entities along the disposal network * Add disposal unit * Unregister disposable component * Add flush and selfinsert verbs to disposal unit * Add gradual disposals movement * Fix being able to walk through space for a while after exiting disposals * Multiply disposals speed by 10 And fix early returns when moving an entity * Rename Disposable component to InDisposals * Remove DisposalNet and add on anchor events * Remove anchored events, moved to interfaces * Code cleanup * Fix adjacent tubes' connections when a tube connects * Fix jittery movement in disposals * Remove Logger.Debug call * Move disposals updates to InDisposalsComponent * Fix adjacent connection valid directions check * Disposal tubes now throw you out where they are facing * Add disposal unit exit cooldown * Set different disposal pipe sprite state depending on anchored value * Add recycler * Add recycler animation * Add bloody texture to the recycler when grinding a living being * Add PowerDevice component to the disposal unit * Made the Recycler center on the grid * Add disposal junction * Add picking a random direction if junction is entered from the output side * Add disposal flush and clang sounds Taken from VGStation * Move disposal flush and clang sound file names to exposedata * Add disposalsmap.yml to test with * Add summaries to DisposalUnit fields * Add sideDegrees yaml property to disposal junctions * Fix outdated usings * Add conveyor resources * Update RobustToolbox * More merge fixes Add conveyor collision masks * Add ConveyorComponent * Fix crash when reentering a body * Merge branch 'master' into disposals-1147 * Reduce recycler bounds, set hard to false, add summary and expose "safe" to yaml * Move IAnchored and IUnAnchored to AnchorableComponent * Update power components and remove old disposals map * Remove redundant sprite layers * Add tile pry command * Fix tilepry command * Fix DisposalJunctionComponent missing a component reference * Add anchor by radius command * Add Y-Junctions * Add disposal bend * Add unanchor command * Change DisposalJunction prototypes to specify their angles * Fix disposal units being hidden below the floor * Removed IAnhored and IUnAnchored interfaces * Replace CanBeNull annotation with nullable reference types * Update showwires command * Add recycler recycling items * Added angle and speed properties to ConveyorComponent * Fix conveyort textures * Add animation to the disposal unit * Fix anchor and unanchor commands sometimes not finding any entities * Fix not reading flush_time from disposal unit prototype * Fix merge conflict wrong using * Fix disposal, recycling and conveyor texture paths Delete diverters * Update visualizer names * Add DisposableComponent, change drag and drop to work with multiple components Ignoreinsideblocker client side for drag and drops, like on the server Add more comments * Add conveyor belts properly moving entities on top * Anchorr wires * Change conveyor bounds to 0.49 * Anchor catwalks, airlocks, gravity generators, low walls, wires and windows * Add starting/stopping conveyors * Add reversed conveyors * Add conveyor switches * Move InDisposalsComponent code to DisposableComponent * Add ExitVector method to tubes * Fix not updating tube references when disconnecting one * Replace IoCManager call with dependency * Add tubes disconnecting if they move too far apart from one another * Move disposals action blocking to shared * Add rotating and flipping pipes * Make conveyor intersection calculations approximate * Fix 1% chance of the server crashing when initializing the map Happens when emergency lockers remove themselves * Add disposal unit interface * Make disposal units refuse items if not powered * Make disposal tubes hide only when anchored * Make disposal junction arrows visible to mere mortals * Add disposal tubes breaking * Add tubeconnections command * Add missing verb attribute * Add flipped disposal junction * Add ids and linking to conveyors and switches * Add conveyor switch prying and placing * Add anchoring conveyor switches and refactor placing them * Add missing serializable attributes from DisposableComponentState * Make conveyor speed VV ReadWrite * Change drawdepth of conveyors to FloorObjects * Make conveyor anchored check consistent * Remove anchoring interaction from switches * Add conveyor switch id syncing and move switches slightly when pried * Make entities in containers not able to be moved by conveyors * Add conveyor and switches loose textures * Merge conflict fixes * Add disposal unit test * Add flushing test to disposal unit test * Add disposal unit flush fail test * Add disposals to the saltern map * Fix saltern disposal junctions * Add power checks to the recycler * Fix disposal unit placement in maintenance closet * Remove disposal junctions from saltern * Readd junctions to saltern * Add the chemmaster to saltern at the request of Ike * Move the chemistry disposal unit * Fix casing of disposal flush sound * More merge conflict fixes * Fix a compiler warning. * Remove popup invocation from buckle * Remove showPopup parameter from InteractionChecks * Remove unnecessary physics components Fixes the physics system dying * Replace PhysicsComponent usages with CollidableComponent * Update existing code for the new controller system * Change conveyors to use a VirtualController instead of teleporting the entity * Remove visualizer 2d suffix and update physics code * Transition code to new controller system * Fix shuttles not moving * Fix throwing * Fix guns * Change hands to use physics.Stop() and remove item fumble method * Add syncing conveyor switches states * Fix the recycler wanting to be a conveyor too hard * Fix showwires > showsubfloor rename in mapping command * Fix wifi air conveyors * Fix test error * Add showsubfloorforever command Changes drawdepth of the relevant entities * Disable opening the disposal unit interface while inside * Add closing the disposal unit interface when getting inside * Add closing the interface when the disposal unit component is removed * Add removing entities on disposal unit component removal * Delay disposal unit flush and fix serialization * Implement pressure in disposal units * Fix chain engaging a disposal unit * Implement states to the disposal unit * Fix missing imports from merge conflict * Update Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com> * Address some reviews * Fix za buildo * Use container helper to detach disposables * Make conveyors use the construction system * Make conveyor groups and syncing sane * Make flip flip brave * Add activate interface to conveyor switches * Fix not removing the switch from its group when it's deleted * Fix not registering conveyors and switches on initialize * Stop using 0 as null * Disconnect conveyors and switches when disposing of a group * Make disposal units not able to be exited when flushing * Make disposal units flush after a configurable 30 seconds * Add handle and light layers to the disposal unit * Merge engaging and flushing * Update saltern.yml * I love using 0 as null * Make disposal unit visual layers make sense * Remove duplicate remove method in disposal units and update light * Replace DisposableComponent with disposal holders * Fix disposal holders deleting their contents on deletion * Account for disposal unit pressure in tests and make a failed flush autoengage * Rename disposable to holder * Fix junction connections * Disable self insert and flush verbs when inside a disposal unit * Fix spamming the engage button making the animation reset * Make the recycler take materials into account properly Fix cablestack1 not existing * Merge conflict fixes * Fix pipes not being saved anchored * Change conveyors and groups to not use an id Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-07-30 23:45:28 +02:00
#nullable enable
using System;
using System.Collections.Generic;
Add the trash man (#1367) * Add disposal.rsi * Rename disposal resource to disposal.rsi and create basic components * Add disposal nets * Add pushing entities along the disposal network * Add disposal unit * Unregister disposable component * Add flush and selfinsert verbs to disposal unit * Add gradual disposals movement * Fix being able to walk through space for a while after exiting disposals * Multiply disposals speed by 10 And fix early returns when moving an entity * Rename Disposable component to InDisposals * Remove DisposalNet and add on anchor events * Remove anchored events, moved to interfaces * Code cleanup * Fix adjacent tubes' connections when a tube connects * Fix jittery movement in disposals * Remove Logger.Debug call * Move disposals updates to InDisposalsComponent * Fix adjacent connection valid directions check * Disposal tubes now throw you out where they are facing * Add disposal unit exit cooldown * Set different disposal pipe sprite state depending on anchored value * Add recycler * Add recycler animation * Add bloody texture to the recycler when grinding a living being * Add PowerDevice component to the disposal unit * Made the Recycler center on the grid * Add disposal junction * Add picking a random direction if junction is entered from the output side * Add disposal flush and clang sounds Taken from VGStation * Move disposal flush and clang sound file names to exposedata * Add disposalsmap.yml to test with * Add summaries to DisposalUnit fields * Add sideDegrees yaml property to disposal junctions * Fix outdated usings * Add conveyor resources * Update RobustToolbox * More merge fixes Add conveyor collision masks * Add ConveyorComponent * Fix crash when reentering a body * Merge branch 'master' into disposals-1147 * Reduce recycler bounds, set hard to false, add summary and expose "safe" to yaml * Move IAnchored and IUnAnchored to AnchorableComponent * Update power components and remove old disposals map * Remove redundant sprite layers * Add tile pry command * Fix tilepry command * Fix DisposalJunctionComponent missing a component reference * Add anchor by radius command * Add Y-Junctions * Add disposal bend * Add unanchor command * Change DisposalJunction prototypes to specify their angles * Fix disposal units being hidden below the floor * Removed IAnhored and IUnAnchored interfaces * Replace CanBeNull annotation with nullable reference types * Update showwires command * Add recycler recycling items * Added angle and speed properties to ConveyorComponent * Fix conveyort textures * Add animation to the disposal unit * Fix anchor and unanchor commands sometimes not finding any entities * Fix not reading flush_time from disposal unit prototype * Fix merge conflict wrong using * Fix disposal, recycling and conveyor texture paths Delete diverters * Update visualizer names * Add DisposableComponent, change drag and drop to work with multiple components Ignoreinsideblocker client side for drag and drops, like on the server Add more comments * Add conveyor belts properly moving entities on top * Anchorr wires * Change conveyor bounds to 0.49 * Anchor catwalks, airlocks, gravity generators, low walls, wires and windows * Add starting/stopping conveyors * Add reversed conveyors * Add conveyor switches * Move InDisposalsComponent code to DisposableComponent * Add ExitVector method to tubes * Fix not updating tube references when disconnecting one * Replace IoCManager call with dependency * Add tubes disconnecting if they move too far apart from one another * Move disposals action blocking to shared * Add rotating and flipping pipes * Make conveyor intersection calculations approximate * Fix 1% chance of the server crashing when initializing the map Happens when emergency lockers remove themselves * Add disposal unit interface * Make disposal units refuse items if not powered * Make disposal tubes hide only when anchored * Make disposal junction arrows visible to mere mortals * Add disposal tubes breaking * Add tubeconnections command * Add missing verb attribute * Add flipped disposal junction * Add ids and linking to conveyors and switches * Add conveyor switch prying and placing * Add anchoring conveyor switches and refactor placing them * Add missing serializable attributes from DisposableComponentState * Make conveyor speed VV ReadWrite * Change drawdepth of conveyors to FloorObjects * Make conveyor anchored check consistent * Remove anchoring interaction from switches * Add conveyor switch id syncing and move switches slightly when pried * Make entities in containers not able to be moved by conveyors * Add conveyor and switches loose textures * Merge conflict fixes * Add disposal unit test * Add flushing test to disposal unit test * Add disposal unit flush fail test * Add disposals to the saltern map * Fix saltern disposal junctions * Add power checks to the recycler * Fix disposal unit placement in maintenance closet * Remove disposal junctions from saltern * Readd junctions to saltern * Add the chemmaster to saltern at the request of Ike * Move the chemistry disposal unit * Fix casing of disposal flush sound * More merge conflict fixes * Fix a compiler warning. * Remove popup invocation from buckle * Remove showPopup parameter from InteractionChecks * Remove unnecessary physics components Fixes the physics system dying * Replace PhysicsComponent usages with CollidableComponent * Update existing code for the new controller system * Change conveyors to use a VirtualController instead of teleporting the entity * Remove visualizer 2d suffix and update physics code * Transition code to new controller system * Fix shuttles not moving * Fix throwing * Fix guns * Change hands to use physics.Stop() and remove item fumble method * Add syncing conveyor switches states * Fix the recycler wanting to be a conveyor too hard * Fix showwires > showsubfloor rename in mapping command * Fix wifi air conveyors * Fix test error * Add showsubfloorforever command Changes drawdepth of the relevant entities * Disable opening the disposal unit interface while inside * Add closing the disposal unit interface when getting inside * Add closing the interface when the disposal unit component is removed * Add removing entities on disposal unit component removal * Delay disposal unit flush and fix serialization * Implement pressure in disposal units * Fix chain engaging a disposal unit * Implement states to the disposal unit * Fix missing imports from merge conflict * Update Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com> * Address some reviews * Fix za buildo * Use container helper to detach disposables * Make conveyors use the construction system * Make conveyor groups and syncing sane * Make flip flip brave * Add activate interface to conveyor switches * Fix not removing the switch from its group when it's deleted * Fix not registering conveyors and switches on initialize * Stop using 0 as null * Disconnect conveyors and switches when disposing of a group * Make disposal units not able to be exited when flushing * Make disposal units flush after a configurable 30 seconds * Add handle and light layers to the disposal unit * Merge engaging and flushing * Update saltern.yml * I love using 0 as null * Make disposal unit visual layers make sense * Remove duplicate remove method in disposal units and update light * Replace DisposableComponent with disposal holders * Fix disposal holders deleting their contents on deletion * Account for disposal unit pressure in tests and make a failed flush autoengage * Rename disposable to holder * Fix junction connections * Disable self insert and flush verbs when inside a disposal unit * Fix spamming the engage button making the animation reset * Make the recycler take materials into account properly Fix cablestack1 not existing * Merge conflict fixes * Fix pipes not being saved anchored * Change conveyors and groups to not use an id Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-07-30 23:45:28 +02:00
using System.Linq;
using Content.Server.Atmos;
using Content.Server.GameObjects.Components.Items.Storage;
using Content.Server.Interfaces;
using Content.Shared.Atmos;
Bodysystem and damagesystem rework (#1544) * Things and stuff with grids, unfinished w/ code debug changes. * Updated submodule and also lost some progress cause I fucked it up xd * First unfinished draft of the BodySystem. Doesn't compile. * More changes to make it compile, but still just a framework. Doesn't do anything at the moment. * Many cleanup changes. * Revert "Merge branch 'master' of https://github.com/GlassEclipse/space-station-14 into body_system" This reverts commit ddd4aebbc76cf2a0b7b102f72b93d55a0816c88c, reversing changes made to 12d0dd752706bdda8879393bd8191a1199a0c978. * Commit human.yml * Updated a lot of things to be more classy, more progress overall, etc. etc. * Latest update with many changes * Minor changes * Fixed Travis build bug * Adds first draft of Body Scanner console, apparently I also forgot to tie Mechanisms into body parts so now a heart just sits in the Torso like a good boy :) * Commit rest of stuff * Latest changes * Latest changes again * 14 naked cowboys * Yay! * Latest changes (probably doesnt compile) * Surgery!!!!!!!!!~1116y * Cleaned some stuff up * More cleanup * Refactoring of code. Basic surgery path now done. * Removed readme, has been added to HackMD * Fixes typo (and thus test errors) * WIP changes, committing so I can pull latest master changes * Still working on that god awful merge * Latest changes * Latest changes!! * Beginning of refactor to BoundUserInterface * Surgery! * Latest changes - fixes pr change requests and random fixes * oops * Fixes bodypart recursion * Beginning of work on revamping the damage system. * More latest changes * Latest changes * Finished merge * Commit before removing old healthcode * Almost done with removing speciescomponent... * It compiles!!! * yahoo more work * Fixes to make it work * Merge conflict fixes * Deleting species visualizer was a mistake * IDE warnings are VERBOTEN * makes the server not kill itself on startup, some cleanup (#1) * Namespaces, comments and exception fixes * Fix conveyor and conveyor switch serialization SS14 in reactive when * Move damage, acts and body to shared Damage cleanup Comment cleanup * Rename SpeciesComponent to RotationComponent and cleanup Damage cleanup Comment cleanup * Fix nullable warnings * Address old reviews Fix off welder suicide damage type, deathmatch and suspicion * Fix new test fail with units being able to accept items when unpowered * Remove RotationComponent, change references to IBodyManagerComponent * Add a bloodstream to humans * More cleanups * Add body conduits, connections, connectors substances and valves * Revert "Add body conduits, connections, connectors substances and valves" This reverts commit 9ab0b50e6b15fe98852d7b0836c0cdbf4bd76d20. * Implement the heart mechanism behavior with the circulatory network * Added network property to mechanism behaviors * Changed human organ sprites and added missing ones * Fix tests * Add individual body part sprite rendering * Fix error where dropped mechanisms are not initialized * Implement client/server body damage * Make DamageContainer take care of raising events * Reimplement medical scanner with the new body system * Improve the medical scanner ui * Merge conflict fixes * Fix crash when colliding with something * Fix microwave suicides and eyes sprite rendering * Fix nullable reference error * Fix up surgery client side * Fix missing using from merge conflict * Add breathing *inhale * Merge conflict fixes * Fix accumulatedframetime being reset to 0 instead of decreased by the threshold https://github.com/space-wizards/space-station-14/pull/1617 * Use and add to the new AtmosHelpers * Fix feet * Add proper coloring to dropped body parts * Fix Urist's lungs being too strong * Merge conflict fixes * Merge conflict fixes * Merge conflict fixes Co-authored-by: GlassEclipse <tsymall5@gmail.com> Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com>
2020-08-17 01:42:42 +02:00
using Content.Shared.GameObjects.Components.Body;
using Robust.Shared.Asynchronous;
Add the trash man (#1367) * Add disposal.rsi * Rename disposal resource to disposal.rsi and create basic components * Add disposal nets * Add pushing entities along the disposal network * Add disposal unit * Unregister disposable component * Add flush and selfinsert verbs to disposal unit * Add gradual disposals movement * Fix being able to walk through space for a while after exiting disposals * Multiply disposals speed by 10 And fix early returns when moving an entity * Rename Disposable component to InDisposals * Remove DisposalNet and add on anchor events * Remove anchored events, moved to interfaces * Code cleanup * Fix adjacent tubes' connections when a tube connects * Fix jittery movement in disposals * Remove Logger.Debug call * Move disposals updates to InDisposalsComponent * Fix adjacent connection valid directions check * Disposal tubes now throw you out where they are facing * Add disposal unit exit cooldown * Set different disposal pipe sprite state depending on anchored value * Add recycler * Add recycler animation * Add bloody texture to the recycler when grinding a living being * Add PowerDevice component to the disposal unit * Made the Recycler center on the grid * Add disposal junction * Add picking a random direction if junction is entered from the output side * Add disposal flush and clang sounds Taken from VGStation * Move disposal flush and clang sound file names to exposedata * Add disposalsmap.yml to test with * Add summaries to DisposalUnit fields * Add sideDegrees yaml property to disposal junctions * Fix outdated usings * Add conveyor resources * Update RobustToolbox * More merge fixes Add conveyor collision masks * Add ConveyorComponent * Fix crash when reentering a body * Merge branch 'master' into disposals-1147 * Reduce recycler bounds, set hard to false, add summary and expose "safe" to yaml * Move IAnchored and IUnAnchored to AnchorableComponent * Update power components and remove old disposals map * Remove redundant sprite layers * Add tile pry command * Fix tilepry command * Fix DisposalJunctionComponent missing a component reference * Add anchor by radius command * Add Y-Junctions * Add disposal bend * Add unanchor command * Change DisposalJunction prototypes to specify their angles * Fix disposal units being hidden below the floor * Removed IAnhored and IUnAnchored interfaces * Replace CanBeNull annotation with nullable reference types * Update showwires command * Add recycler recycling items * Added angle and speed properties to ConveyorComponent * Fix conveyort textures * Add animation to the disposal unit * Fix anchor and unanchor commands sometimes not finding any entities * Fix not reading flush_time from disposal unit prototype * Fix merge conflict wrong using * Fix disposal, recycling and conveyor texture paths Delete diverters * Update visualizer names * Add DisposableComponent, change drag and drop to work with multiple components Ignoreinsideblocker client side for drag and drops, like on the server Add more comments * Add conveyor belts properly moving entities on top * Anchorr wires * Change conveyor bounds to 0.49 * Anchor catwalks, airlocks, gravity generators, low walls, wires and windows * Add starting/stopping conveyors * Add reversed conveyors * Add conveyor switches * Move InDisposalsComponent code to DisposableComponent * Add ExitVector method to tubes * Fix not updating tube references when disconnecting one * Replace IoCManager call with dependency * Add tubes disconnecting if they move too far apart from one another * Move disposals action blocking to shared * Add rotating and flipping pipes * Make conveyor intersection calculations approximate * Fix 1% chance of the server crashing when initializing the map Happens when emergency lockers remove themselves * Add disposal unit interface * Make disposal units refuse items if not powered * Make disposal tubes hide only when anchored * Make disposal junction arrows visible to mere mortals * Add disposal tubes breaking * Add tubeconnections command * Add missing verb attribute * Add flipped disposal junction * Add ids and linking to conveyors and switches * Add conveyor switch prying and placing * Add anchoring conveyor switches and refactor placing them * Add missing serializable attributes from DisposableComponentState * Make conveyor speed VV ReadWrite * Change drawdepth of conveyors to FloorObjects * Make conveyor anchored check consistent * Remove anchoring interaction from switches * Add conveyor switch id syncing and move switches slightly when pried * Make entities in containers not able to be moved by conveyors * Add conveyor and switches loose textures * Merge conflict fixes * Add disposal unit test * Add flushing test to disposal unit test * Add disposal unit flush fail test * Add disposals to the saltern map * Fix saltern disposal junctions * Add power checks to the recycler * Fix disposal unit placement in maintenance closet * Remove disposal junctions from saltern * Readd junctions to saltern * Add the chemmaster to saltern at the request of Ike * Move the chemistry disposal unit * Fix casing of disposal flush sound * More merge conflict fixes * Fix a compiler warning. * Remove popup invocation from buckle * Remove showPopup parameter from InteractionChecks * Remove unnecessary physics components Fixes the physics system dying * Replace PhysicsComponent usages with CollidableComponent * Update existing code for the new controller system * Change conveyors to use a VirtualController instead of teleporting the entity * Remove visualizer 2d suffix and update physics code * Transition code to new controller system * Fix shuttles not moving * Fix throwing * Fix guns * Change hands to use physics.Stop() and remove item fumble method * Add syncing conveyor switches states * Fix the recycler wanting to be a conveyor too hard * Fix showwires > showsubfloor rename in mapping command * Fix wifi air conveyors * Fix test error * Add showsubfloorforever command Changes drawdepth of the relevant entities * Disable opening the disposal unit interface while inside * Add closing the disposal unit interface when getting inside * Add closing the interface when the disposal unit component is removed * Add removing entities on disposal unit component removal * Delay disposal unit flush and fix serialization * Implement pressure in disposal units * Fix chain engaging a disposal unit * Implement states to the disposal unit * Fix missing imports from merge conflict * Update Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com> * Address some reviews * Fix za buildo * Use container helper to detach disposables * Make conveyors use the construction system * Make conveyor groups and syncing sane * Make flip flip brave * Add activate interface to conveyor switches * Fix not removing the switch from its group when it's deleted * Fix not registering conveyors and switches on initialize * Stop using 0 as null * Disconnect conveyors and switches when disposing of a group * Make disposal units not able to be exited when flushing * Make disposal units flush after a configurable 30 seconds * Add handle and light layers to the disposal unit * Merge engaging and flushing * Update saltern.yml * I love using 0 as null * Make disposal unit visual layers make sense * Remove duplicate remove method in disposal units and update light * Replace DisposableComponent with disposal holders * Fix disposal holders deleting their contents on deletion * Account for disposal unit pressure in tests and make a failed flush autoengage * Rename disposable to holder * Fix junction connections * Disable self insert and flush verbs when inside a disposal unit * Fix spamming the engage button making the animation reset * Make the recycler take materials into account properly Fix cablestack1 not existing * Merge conflict fixes * Fix pipes not being saved anchored * Change conveyors and groups to not use an id Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-07-30 23:45:28 +02:00
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
Add the trash man (#1367) * Add disposal.rsi * Rename disposal resource to disposal.rsi and create basic components * Add disposal nets * Add pushing entities along the disposal network * Add disposal unit * Unregister disposable component * Add flush and selfinsert verbs to disposal unit * Add gradual disposals movement * Fix being able to walk through space for a while after exiting disposals * Multiply disposals speed by 10 And fix early returns when moving an entity * Rename Disposable component to InDisposals * Remove DisposalNet and add on anchor events * Remove anchored events, moved to interfaces * Code cleanup * Fix adjacent tubes' connections when a tube connects * Fix jittery movement in disposals * Remove Logger.Debug call * Move disposals updates to InDisposalsComponent * Fix adjacent connection valid directions check * Disposal tubes now throw you out where they are facing * Add disposal unit exit cooldown * Set different disposal pipe sprite state depending on anchored value * Add recycler * Add recycler animation * Add bloody texture to the recycler when grinding a living being * Add PowerDevice component to the disposal unit * Made the Recycler center on the grid * Add disposal junction * Add picking a random direction if junction is entered from the output side * Add disposal flush and clang sounds Taken from VGStation * Move disposal flush and clang sound file names to exposedata * Add disposalsmap.yml to test with * Add summaries to DisposalUnit fields * Add sideDegrees yaml property to disposal junctions * Fix outdated usings * Add conveyor resources * Update RobustToolbox * More merge fixes Add conveyor collision masks * Add ConveyorComponent * Fix crash when reentering a body * Merge branch 'master' into disposals-1147 * Reduce recycler bounds, set hard to false, add summary and expose "safe" to yaml * Move IAnchored and IUnAnchored to AnchorableComponent * Update power components and remove old disposals map * Remove redundant sprite layers * Add tile pry command * Fix tilepry command * Fix DisposalJunctionComponent missing a component reference * Add anchor by radius command * Add Y-Junctions * Add disposal bend * Add unanchor command * Change DisposalJunction prototypes to specify their angles * Fix disposal units being hidden below the floor * Removed IAnhored and IUnAnchored interfaces * Replace CanBeNull annotation with nullable reference types * Update showwires command * Add recycler recycling items * Added angle and speed properties to ConveyorComponent * Fix conveyort textures * Add animation to the disposal unit * Fix anchor and unanchor commands sometimes not finding any entities * Fix not reading flush_time from disposal unit prototype * Fix merge conflict wrong using * Fix disposal, recycling and conveyor texture paths Delete diverters * Update visualizer names * Add DisposableComponent, change drag and drop to work with multiple components Ignoreinsideblocker client side for drag and drops, like on the server Add more comments * Add conveyor belts properly moving entities on top * Anchorr wires * Change conveyor bounds to 0.49 * Anchor catwalks, airlocks, gravity generators, low walls, wires and windows * Add starting/stopping conveyors * Add reversed conveyors * Add conveyor switches * Move InDisposalsComponent code to DisposableComponent * Add ExitVector method to tubes * Fix not updating tube references when disconnecting one * Replace IoCManager call with dependency * Add tubes disconnecting if they move too far apart from one another * Move disposals action blocking to shared * Add rotating and flipping pipes * Make conveyor intersection calculations approximate * Fix 1% chance of the server crashing when initializing the map Happens when emergency lockers remove themselves * Add disposal unit interface * Make disposal units refuse items if not powered * Make disposal tubes hide only when anchored * Make disposal junction arrows visible to mere mortals * Add disposal tubes breaking * Add tubeconnections command * Add missing verb attribute * Add flipped disposal junction * Add ids and linking to conveyors and switches * Add conveyor switch prying and placing * Add anchoring conveyor switches and refactor placing them * Add missing serializable attributes from DisposableComponentState * Make conveyor speed VV ReadWrite * Change drawdepth of conveyors to FloorObjects * Make conveyor anchored check consistent * Remove anchoring interaction from switches * Add conveyor switch id syncing and move switches slightly when pried * Make entities in containers not able to be moved by conveyors * Add conveyor and switches loose textures * Merge conflict fixes * Add disposal unit test * Add flushing test to disposal unit test * Add disposal unit flush fail test * Add disposals to the saltern map * Fix saltern disposal junctions * Add power checks to the recycler * Fix disposal unit placement in maintenance closet * Remove disposal junctions from saltern * Readd junctions to saltern * Add the chemmaster to saltern at the request of Ike * Move the chemistry disposal unit * Fix casing of disposal flush sound * More merge conflict fixes * Fix a compiler warning. * Remove popup invocation from buckle * Remove showPopup parameter from InteractionChecks * Remove unnecessary physics components Fixes the physics system dying * Replace PhysicsComponent usages with CollidableComponent * Update existing code for the new controller system * Change conveyors to use a VirtualController instead of teleporting the entity * Remove visualizer 2d suffix and update physics code * Transition code to new controller system * Fix shuttles not moving * Fix throwing * Fix guns * Change hands to use physics.Stop() and remove item fumble method * Add syncing conveyor switches states * Fix the recycler wanting to be a conveyor too hard * Fix showwires > showsubfloor rename in mapping command * Fix wifi air conveyors * Fix test error * Add showsubfloorforever command Changes drawdepth of the relevant entities * Disable opening the disposal unit interface while inside * Add closing the disposal unit interface when getting inside * Add closing the interface when the disposal unit component is removed * Add removing entities on disposal unit component removal * Delay disposal unit flush and fix serialization * Implement pressure in disposal units * Fix chain engaging a disposal unit * Implement states to the disposal unit * Fix missing imports from merge conflict * Update Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com> * Address some reviews * Fix za buildo * Use container helper to detach disposables * Make conveyors use the construction system * Make conveyor groups and syncing sane * Make flip flip brave * Add activate interface to conveyor switches * Fix not removing the switch from its group when it's deleted * Fix not registering conveyors and switches on initialize * Stop using 0 as null * Disconnect conveyors and switches when disposing of a group * Make disposal units not able to be exited when flushing * Make disposal units flush after a configurable 30 seconds * Add handle and light layers to the disposal unit * Merge engaging and flushing * Update saltern.yml * I love using 0 as null * Make disposal unit visual layers make sense * Remove duplicate remove method in disposal units and update light * Replace DisposableComponent with disposal holders * Fix disposal holders deleting their contents on deletion * Account for disposal unit pressure in tests and make a failed flush autoengage * Rename disposable to holder * Fix junction connections * Disable self insert and flush verbs when inside a disposal unit * Fix spamming the engage button making the animation reset * Make the recycler take materials into account properly Fix cablestack1 not existing * Merge conflict fixes * Fix pipes not being saved anchored * Change conveyors and groups to not use an id Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-07-30 23:45:28 +02:00
using Robust.Shared.Maths;
Serialization v3 content PR (#3491) * serv3 in shared pt 1 * beginning of deepclone api * progress in implementing ideepclone & serv3 in content * adds target * its cant hurt you it cant hurt you * more changes to content.server * adds dataclasses * almost there * renamed & edited entry * finishes refactoring content to use serv3 * gasmixture runtimes, next: reagentunit * fucin hell that was an annoying one * adds flags * fixes some yaml errors * removes comment * fixes generic components for now * removes todo actually clones values my god paul fixes bug involving resolving custom data classes from other proj renames dataclass fixes spritecomp adds WithFormat.Constants support * adds deepclone to ResistanceSet * adds a bunch of deepclone implementations adds a deepclone analyzer (TODO) adds a deep clone fallback for classes & structs * fixes a bunch of runtimes * adds deepclone to entityuid * adds generator to sln * gets rid of warnings * fixes * argh * componentdata refactors * more deepclone impl * heck me i reworked all of content deepclone * renames custom dataclasstarget * misc * reworks prototypes * deepclone nuke * renamed customdataclass attribute * fixes everything * misc fixed * the killcommit * getting there * changed yamlfieldattribute namespace * adds back iselfserialize * renames everything to data(field/definition) * ouch * Fix most errors on content * Fix more errors in content * Fix some components * work on tests * fixes some customdataclasses * fuggin shit * yes * yeas * Remove data classes * Data field naming fixes * arg * Git resetti RobustToolbox * Merge fixes * General fixes * Fix startup serialization errors * Fix DamageContainerPrototype when supported classes or types are null * Implement construction graph step type serializer * Fix up construction serialization * Fix up construction serialization part 2 * Fix null list in technology database component * Fix body serialization * Fix entity storage serialization * Fix actions serialization * Fix AI serialization * Fix reaction serialization * Fix body serialization * Fix grid atmosphere serialization * Rename IServ3Manager to ISerializationManager * Convert every non generic serializer to the new format, general fixes * Serialization and body system fix * pushinheritance fix * Update all prototypes to have a parent and have consistent id/parent properties * Merge fixes * smh my head * cuddling slaps * Content commit for engine PR * stuff * more fixes * argh * yes even you are fixed * changelog fixes * fixes seeds * argh * Test fixes * Add writing for alert order prototype * Fix alert order writing * FIX * its been alot ok * Fix the rest of the visualizers * Fix server alerts component tests * Fix alert prototype tests not using the read value * Fix alert prototype tests initializing serialization multiple times * THIS IS AN AMERICAN CODEBASE GOD BLESS THE USA * Add ImplicitDataDefinitionForInheritors to IMechanismBehavior Fixes the behaviors not being found * Fix NRE in strap component Good night to the 1 buckle optimization * Fix clothing component slot flags serialization tag * Fix body component in all components test * Merge fixes * ffs * Make construction graph prototype use serialization hooks * human yaml linted * a * Do the thing for construction * stuff * a * monke see yaml linter * LINT HARDER * Remove redundant todo * yes * Add skip hook argument to readers and copiers * we gamin * test/datafield fixes * adds more verbose validation * moves linter to action * Improve construction graph step type serializer error message * Fix ammo box component NRE * gamin * some updates to the linter * yes * removes that test * misc fixes * array fix priority fix misc fixes * adds proper info the validation * adds alwaysrelevant usa * Make yaml linter take half as long to run (~50% less) * Make yaml linter 5 times faster (~80% less execution time) * based vera being based * fixes mapsaving * warning cleanup & moves surpressor * removes old msbuild targets * Revert "Make yaml linter 5 times faster (~80% less execution time)" This reverts commit 3e6091359a26252c3e98828199553de668031c63. * Add -nowarn to yaml linter run configuration * Improve yaml linter message feedback * Make dependencies an argument instead of a property on the serialization manager * yamllinting slaps * Clean up type serializers * Move yaml linter code to its own method * Fix yaml errors * Change yaml linter action name and remove -nowarn * yaml linter please shut * Git resetti robust toolbox Co-authored-by: Paul <ritter.paul1+git@googlemail.com> Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2021-03-05 01:08:38 +01:00
using Robust.Shared.Prototypes;
Physics (#3485) * Content side new physics structure * BroadPhase outline done * But we need to fix WorldAABB * Fix static pvs AABB * Fix import * Rando fixes * B is for balloon * Change human mob hitbox to circle * Decent movement * Start adding friction to player controller I think it's the best way to go about it to keep other objects somewhat consistent for physics. * This baby can fit so many physics bugs in it. * Slight mob mover optimisations. * Player mover kinda works okay. * Beginnings of testbed * More testbed * Circlestack bed * Namespaces * BB fixes * Pull WorldAABB * Joint pulling * Semi-decent movement I guess. * Pulling better * Bullet controller + old movement * im too dumb for this shit * Use kinematic mob controller again It's probably for the best TBH * Stashed shitcode * Remove SlipController * In which movement code is entirely refactored * Singularity fix * Fix ApplyLinearImpulse * MoveRelay fix * Fix door collisions * Disable subfloor collisions Saves on broadphase a fair bit * Re-implement ClimbController * Zumzum's pressure * Laggy item throwing * Minor atmos change * Some caching * Optimise controllers * Optimise CollideWith to hell and back * Re-do throwing and tile friction * Landing too * Optimise controllers * Move CCVars and other stuff swept is beautiful * Cleanup a bunch of controllers * Fix shooting and high pressure movement controller * Flashing improvements * Stuff and things * Combat collisions * Combat mode collisions * Pulling distance joint again * Cleanup physics interfaces * More like scuffedularity * Shit's fucked * Haha tests go green * Bigmoneycrab * Fix dupe pulling * Zumzum's based fix * Don't run tile friction for non-predicted bodies * Experimental pulling improvement * Everything's a poly now * Optimise AI region debugging a bit Could still be better but should improve default performance a LOT * Mover no updater * Crazy kinematic body idea * Good collisions * KinematicController * Fix aghost * Throwing refactor * Pushing cleanup * Fix throwing and footstep sounds * Frametime in ICollideBehavior * Fix stuff * Actually fix weightlessness * Optimise collision behaviors a lot * Make open lockers still collide with walls * powwweeerrrrr * Merge master proper * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * Ch ch ch changesss * SHIP IT * Fix #if DEBUG * Fix vaulting and item locker collision * Fix throwing * Editing yaml by hand what can go wrong * on * Last yaml fixes * Okay now it's fixed * Linter Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com> Co-authored-by: Vera Aguilera Puerto <zddm@outlook.es>
2021-03-08 04:09:59 +11:00
using Robust.Shared.Physics;
using Robust.Shared.Serialization;
Serialization v3 content PR (#3491) * serv3 in shared pt 1 * beginning of deepclone api * progress in implementing ideepclone & serv3 in content * adds target * its cant hurt you it cant hurt you * more changes to content.server * adds dataclasses * almost there * renamed & edited entry * finishes refactoring content to use serv3 * gasmixture runtimes, next: reagentunit * fucin hell that was an annoying one * adds flags * fixes some yaml errors * removes comment * fixes generic components for now * removes todo actually clones values my god paul fixes bug involving resolving custom data classes from other proj renames dataclass fixes spritecomp adds WithFormat.Constants support * adds deepclone to ResistanceSet * adds a bunch of deepclone implementations adds a deepclone analyzer (TODO) adds a deep clone fallback for classes & structs * fixes a bunch of runtimes * adds deepclone to entityuid * adds generator to sln * gets rid of warnings * fixes * argh * componentdata refactors * more deepclone impl * heck me i reworked all of content deepclone * renames custom dataclasstarget * misc * reworks prototypes * deepclone nuke * renamed customdataclass attribute * fixes everything * misc fixed * the killcommit * getting there * changed yamlfieldattribute namespace * adds back iselfserialize * renames everything to data(field/definition) * ouch * Fix most errors on content * Fix more errors in content * Fix some components * work on tests * fixes some customdataclasses * fuggin shit * yes * yeas * Remove data classes * Data field naming fixes * arg * Git resetti RobustToolbox * Merge fixes * General fixes * Fix startup serialization errors * Fix DamageContainerPrototype when supported classes or types are null * Implement construction graph step type serializer * Fix up construction serialization * Fix up construction serialization part 2 * Fix null list in technology database component * Fix body serialization * Fix entity storage serialization * Fix actions serialization * Fix AI serialization * Fix reaction serialization * Fix body serialization * Fix grid atmosphere serialization * Rename IServ3Manager to ISerializationManager * Convert every non generic serializer to the new format, general fixes * Serialization and body system fix * pushinheritance fix * Update all prototypes to have a parent and have consistent id/parent properties * Merge fixes * smh my head * cuddling slaps * Content commit for engine PR * stuff * more fixes * argh * yes even you are fixed * changelog fixes * fixes seeds * argh * Test fixes * Add writing for alert order prototype * Fix alert order writing * FIX * its been alot ok * Fix the rest of the visualizers * Fix server alerts component tests * Fix alert prototype tests not using the read value * Fix alert prototype tests initializing serialization multiple times * THIS IS AN AMERICAN CODEBASE GOD BLESS THE USA * Add ImplicitDataDefinitionForInheritors to IMechanismBehavior Fixes the behaviors not being found * Fix NRE in strap component Good night to the 1 buckle optimization * Fix clothing component slot flags serialization tag * Fix body component in all components test * Merge fixes * ffs * Make construction graph prototype use serialization hooks * human yaml linted * a * Do the thing for construction * stuff * a * monke see yaml linter * LINT HARDER * Remove redundant todo * yes * Add skip hook argument to readers and copiers * we gamin * test/datafield fixes * adds more verbose validation * moves linter to action * Improve construction graph step type serializer error message * Fix ammo box component NRE * gamin * some updates to the linter * yes * removes that test * misc fixes * array fix priority fix misc fixes * adds proper info the validation * adds alwaysrelevant usa * Make yaml linter take half as long to run (~50% less) * Make yaml linter 5 times faster (~80% less execution time) * based vera being based * fixes mapsaving * warning cleanup & moves surpressor * removes old msbuild targets * Revert "Make yaml linter 5 times faster (~80% less execution time)" This reverts commit 3e6091359a26252c3e98828199553de668031c63. * Add -nowarn to yaml linter run configuration * Improve yaml linter message feedback * Make dependencies an argument instead of a property on the serialization manager * yamllinting slaps * Clean up type serializers * Move yaml linter code to its own method * Fix yaml errors * Change yaml linter action name and remove -nowarn * yaml linter please shut * Git resetti robust toolbox Co-authored-by: Paul <ritter.paul1+git@googlemail.com> Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2021-03-05 01:08:38 +01:00
using Robust.Shared.Serialization.Manager.Attributes;
Add the trash man (#1367) * Add disposal.rsi * Rename disposal resource to disposal.rsi and create basic components * Add disposal nets * Add pushing entities along the disposal network * Add disposal unit * Unregister disposable component * Add flush and selfinsert verbs to disposal unit * Add gradual disposals movement * Fix being able to walk through space for a while after exiting disposals * Multiply disposals speed by 10 And fix early returns when moving an entity * Rename Disposable component to InDisposals * Remove DisposalNet and add on anchor events * Remove anchored events, moved to interfaces * Code cleanup * Fix adjacent tubes' connections when a tube connects * Fix jittery movement in disposals * Remove Logger.Debug call * Move disposals updates to InDisposalsComponent * Fix adjacent connection valid directions check * Disposal tubes now throw you out where they are facing * Add disposal unit exit cooldown * Set different disposal pipe sprite state depending on anchored value * Add recycler * Add recycler animation * Add bloody texture to the recycler when grinding a living being * Add PowerDevice component to the disposal unit * Made the Recycler center on the grid * Add disposal junction * Add picking a random direction if junction is entered from the output side * Add disposal flush and clang sounds Taken from VGStation * Move disposal flush and clang sound file names to exposedata * Add disposalsmap.yml to test with * Add summaries to DisposalUnit fields * Add sideDegrees yaml property to disposal junctions * Fix outdated usings * Add conveyor resources * Update RobustToolbox * More merge fixes Add conveyor collision masks * Add ConveyorComponent * Fix crash when reentering a body * Merge branch 'master' into disposals-1147 * Reduce recycler bounds, set hard to false, add summary and expose "safe" to yaml * Move IAnchored and IUnAnchored to AnchorableComponent * Update power components and remove old disposals map * Remove redundant sprite layers * Add tile pry command * Fix tilepry command * Fix DisposalJunctionComponent missing a component reference * Add anchor by radius command * Add Y-Junctions * Add disposal bend * Add unanchor command * Change DisposalJunction prototypes to specify their angles * Fix disposal units being hidden below the floor * Removed IAnhored and IUnAnchored interfaces * Replace CanBeNull annotation with nullable reference types * Update showwires command * Add recycler recycling items * Added angle and speed properties to ConveyorComponent * Fix conveyort textures * Add animation to the disposal unit * Fix anchor and unanchor commands sometimes not finding any entities * Fix not reading flush_time from disposal unit prototype * Fix merge conflict wrong using * Fix disposal, recycling and conveyor texture paths Delete diverters * Update visualizer names * Add DisposableComponent, change drag and drop to work with multiple components Ignoreinsideblocker client side for drag and drops, like on the server Add more comments * Add conveyor belts properly moving entities on top * Anchorr wires * Change conveyor bounds to 0.49 * Anchor catwalks, airlocks, gravity generators, low walls, wires and windows * Add starting/stopping conveyors * Add reversed conveyors * Add conveyor switches * Move InDisposalsComponent code to DisposableComponent * Add ExitVector method to tubes * Fix not updating tube references when disconnecting one * Replace IoCManager call with dependency * Add tubes disconnecting if they move too far apart from one another * Move disposals action blocking to shared * Add rotating and flipping pipes * Make conveyor intersection calculations approximate * Fix 1% chance of the server crashing when initializing the map Happens when emergency lockers remove themselves * Add disposal unit interface * Make disposal units refuse items if not powered * Make disposal tubes hide only when anchored * Make disposal junction arrows visible to mere mortals * Add disposal tubes breaking * Add tubeconnections command * Add missing verb attribute * Add flipped disposal junction * Add ids and linking to conveyors and switches * Add conveyor switch prying and placing * Add anchoring conveyor switches and refactor placing them * Add missing serializable attributes from DisposableComponentState * Make conveyor speed VV ReadWrite * Change drawdepth of conveyors to FloorObjects * Make conveyor anchored check consistent * Remove anchoring interaction from switches * Add conveyor switch id syncing and move switches slightly when pried * Make entities in containers not able to be moved by conveyors * Add conveyor and switches loose textures * Merge conflict fixes * Add disposal unit test * Add flushing test to disposal unit test * Add disposal unit flush fail test * Add disposals to the saltern map * Fix saltern disposal junctions * Add power checks to the recycler * Fix disposal unit placement in maintenance closet * Remove disposal junctions from saltern * Readd junctions to saltern * Add the chemmaster to saltern at the request of Ike * Move the chemistry disposal unit * Fix casing of disposal flush sound * More merge conflict fixes * Fix a compiler warning. * Remove popup invocation from buckle * Remove showPopup parameter from InteractionChecks * Remove unnecessary physics components Fixes the physics system dying * Replace PhysicsComponent usages with CollidableComponent * Update existing code for the new controller system * Change conveyors to use a VirtualController instead of teleporting the entity * Remove visualizer 2d suffix and update physics code * Transition code to new controller system * Fix shuttles not moving * Fix throwing * Fix guns * Change hands to use physics.Stop() and remove item fumble method * Add syncing conveyor switches states * Fix the recycler wanting to be a conveyor too hard * Fix showwires > showsubfloor rename in mapping command * Fix wifi air conveyors * Fix test error * Add showsubfloorforever command Changes drawdepth of the relevant entities * Disable opening the disposal unit interface while inside * Add closing the disposal unit interface when getting inside * Add closing the interface when the disposal unit component is removed * Add removing entities on disposal unit component removal * Delay disposal unit flush and fix serialization * Implement pressure in disposal units * Fix chain engaging a disposal unit * Implement states to the disposal unit * Fix missing imports from merge conflict * Update Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com> * Address some reviews * Fix za buildo * Use container helper to detach disposables * Make conveyors use the construction system * Make conveyor groups and syncing sane * Make flip flip brave * Add activate interface to conveyor switches * Fix not removing the switch from its group when it's deleted * Fix not registering conveyors and switches on initialize * Stop using 0 as null * Disconnect conveyors and switches when disposing of a group * Make disposal units not able to be exited when flushing * Make disposal units flush after a configurable 30 seconds * Add handle and light layers to the disposal unit * Merge engaging and flushing * Update saltern.yml * I love using 0 as null * Make disposal unit visual layers make sense * Remove duplicate remove method in disposal units and update light * Replace DisposableComponent with disposal holders * Fix disposal holders deleting their contents on deletion * Account for disposal unit pressure in tests and make a failed flush autoengage * Rename disposable to holder * Fix junction connections * Disable self insert and flush verbs when inside a disposal unit * Fix spamming the engage button making the animation reset * Make the recycler take materials into account properly Fix cablestack1 not existing * Merge conflict fixes * Fix pipes not being saved anchored * Change conveyors and groups to not use an id Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-07-30 23:45:28 +02:00
using Robust.Shared.ViewVariables;
namespace Content.Server.GameObjects.Components.Disposal
{
// TODO: Add gas
[RegisterComponent]
public class DisposalHolderComponent : Component, IGasMixtureHolder
Add the trash man (#1367) * Add disposal.rsi * Rename disposal resource to disposal.rsi and create basic components * Add disposal nets * Add pushing entities along the disposal network * Add disposal unit * Unregister disposable component * Add flush and selfinsert verbs to disposal unit * Add gradual disposals movement * Fix being able to walk through space for a while after exiting disposals * Multiply disposals speed by 10 And fix early returns when moving an entity * Rename Disposable component to InDisposals * Remove DisposalNet and add on anchor events * Remove anchored events, moved to interfaces * Code cleanup * Fix adjacent tubes' connections when a tube connects * Fix jittery movement in disposals * Remove Logger.Debug call * Move disposals updates to InDisposalsComponent * Fix adjacent connection valid directions check * Disposal tubes now throw you out where they are facing * Add disposal unit exit cooldown * Set different disposal pipe sprite state depending on anchored value * Add recycler * Add recycler animation * Add bloody texture to the recycler when grinding a living being * Add PowerDevice component to the disposal unit * Made the Recycler center on the grid * Add disposal junction * Add picking a random direction if junction is entered from the output side * Add disposal flush and clang sounds Taken from VGStation * Move disposal flush and clang sound file names to exposedata * Add disposalsmap.yml to test with * Add summaries to DisposalUnit fields * Add sideDegrees yaml property to disposal junctions * Fix outdated usings * Add conveyor resources * Update RobustToolbox * More merge fixes Add conveyor collision masks * Add ConveyorComponent * Fix crash when reentering a body * Merge branch 'master' into disposals-1147 * Reduce recycler bounds, set hard to false, add summary and expose "safe" to yaml * Move IAnchored and IUnAnchored to AnchorableComponent * Update power components and remove old disposals map * Remove redundant sprite layers * Add tile pry command * Fix tilepry command * Fix DisposalJunctionComponent missing a component reference * Add anchor by radius command * Add Y-Junctions * Add disposal bend * Add unanchor command * Change DisposalJunction prototypes to specify their angles * Fix disposal units being hidden below the floor * Removed IAnhored and IUnAnchored interfaces * Replace CanBeNull annotation with nullable reference types * Update showwires command * Add recycler recycling items * Added angle and speed properties to ConveyorComponent * Fix conveyort textures * Add animation to the disposal unit * Fix anchor and unanchor commands sometimes not finding any entities * Fix not reading flush_time from disposal unit prototype * Fix merge conflict wrong using * Fix disposal, recycling and conveyor texture paths Delete diverters * Update visualizer names * Add DisposableComponent, change drag and drop to work with multiple components Ignoreinsideblocker client side for drag and drops, like on the server Add more comments * Add conveyor belts properly moving entities on top * Anchorr wires * Change conveyor bounds to 0.49 * Anchor catwalks, airlocks, gravity generators, low walls, wires and windows * Add starting/stopping conveyors * Add reversed conveyors * Add conveyor switches * Move InDisposalsComponent code to DisposableComponent * Add ExitVector method to tubes * Fix not updating tube references when disconnecting one * Replace IoCManager call with dependency * Add tubes disconnecting if they move too far apart from one another * Move disposals action blocking to shared * Add rotating and flipping pipes * Make conveyor intersection calculations approximate * Fix 1% chance of the server crashing when initializing the map Happens when emergency lockers remove themselves * Add disposal unit interface * Make disposal units refuse items if not powered * Make disposal tubes hide only when anchored * Make disposal junction arrows visible to mere mortals * Add disposal tubes breaking * Add tubeconnections command * Add missing verb attribute * Add flipped disposal junction * Add ids and linking to conveyors and switches * Add conveyor switch prying and placing * Add anchoring conveyor switches and refactor placing them * Add missing serializable attributes from DisposableComponentState * Make conveyor speed VV ReadWrite * Change drawdepth of conveyors to FloorObjects * Make conveyor anchored check consistent * Remove anchoring interaction from switches * Add conveyor switch id syncing and move switches slightly when pried * Make entities in containers not able to be moved by conveyors * Add conveyor and switches loose textures * Merge conflict fixes * Add disposal unit test * Add flushing test to disposal unit test * Add disposal unit flush fail test * Add disposals to the saltern map * Fix saltern disposal junctions * Add power checks to the recycler * Fix disposal unit placement in maintenance closet * Remove disposal junctions from saltern * Readd junctions to saltern * Add the chemmaster to saltern at the request of Ike * Move the chemistry disposal unit * Fix casing of disposal flush sound * More merge conflict fixes * Fix a compiler warning. * Remove popup invocation from buckle * Remove showPopup parameter from InteractionChecks * Remove unnecessary physics components Fixes the physics system dying * Replace PhysicsComponent usages with CollidableComponent * Update existing code for the new controller system * Change conveyors to use a VirtualController instead of teleporting the entity * Remove visualizer 2d suffix and update physics code * Transition code to new controller system * Fix shuttles not moving * Fix throwing * Fix guns * Change hands to use physics.Stop() and remove item fumble method * Add syncing conveyor switches states * Fix the recycler wanting to be a conveyor too hard * Fix showwires > showsubfloor rename in mapping command * Fix wifi air conveyors * Fix test error * Add showsubfloorforever command Changes drawdepth of the relevant entities * Disable opening the disposal unit interface while inside * Add closing the disposal unit interface when getting inside * Add closing the interface when the disposal unit component is removed * Add removing entities on disposal unit component removal * Delay disposal unit flush and fix serialization * Implement pressure in disposal units * Fix chain engaging a disposal unit * Implement states to the disposal unit * Fix missing imports from merge conflict * Update Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com> * Address some reviews * Fix za buildo * Use container helper to detach disposables * Make conveyors use the construction system * Make conveyor groups and syncing sane * Make flip flip brave * Add activate interface to conveyor switches * Fix not removing the switch from its group when it's deleted * Fix not registering conveyors and switches on initialize * Stop using 0 as null * Disconnect conveyors and switches when disposing of a group * Make disposal units not able to be exited when flushing * Make disposal units flush after a configurable 30 seconds * Add handle and light layers to the disposal unit * Merge engaging and flushing * Update saltern.yml * I love using 0 as null * Make disposal unit visual layers make sense * Remove duplicate remove method in disposal units and update light * Replace DisposableComponent with disposal holders * Fix disposal holders deleting their contents on deletion * Account for disposal unit pressure in tests and make a failed flush autoengage * Rename disposable to holder * Fix junction connections * Disable self insert and flush verbs when inside a disposal unit * Fix spamming the engage button making the animation reset * Make the recycler take materials into account properly Fix cablestack1 not existing * Merge conflict fixes * Fix pipes not being saved anchored * Change conveyors and groups to not use an id Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-07-30 23:45:28 +02:00
{
public override string Name => "DisposalHolder";
private bool _deletionRequested = false;
Add the trash man (#1367) * Add disposal.rsi * Rename disposal resource to disposal.rsi and create basic components * Add disposal nets * Add pushing entities along the disposal network * Add disposal unit * Unregister disposable component * Add flush and selfinsert verbs to disposal unit * Add gradual disposals movement * Fix being able to walk through space for a while after exiting disposals * Multiply disposals speed by 10 And fix early returns when moving an entity * Rename Disposable component to InDisposals * Remove DisposalNet and add on anchor events * Remove anchored events, moved to interfaces * Code cleanup * Fix adjacent tubes' connections when a tube connects * Fix jittery movement in disposals * Remove Logger.Debug call * Move disposals updates to InDisposalsComponent * Fix adjacent connection valid directions check * Disposal tubes now throw you out where they are facing * Add disposal unit exit cooldown * Set different disposal pipe sprite state depending on anchored value * Add recycler * Add recycler animation * Add bloody texture to the recycler when grinding a living being * Add PowerDevice component to the disposal unit * Made the Recycler center on the grid * Add disposal junction * Add picking a random direction if junction is entered from the output side * Add disposal flush and clang sounds Taken from VGStation * Move disposal flush and clang sound file names to exposedata * Add disposalsmap.yml to test with * Add summaries to DisposalUnit fields * Add sideDegrees yaml property to disposal junctions * Fix outdated usings * Add conveyor resources * Update RobustToolbox * More merge fixes Add conveyor collision masks * Add ConveyorComponent * Fix crash when reentering a body * Merge branch 'master' into disposals-1147 * Reduce recycler bounds, set hard to false, add summary and expose "safe" to yaml * Move IAnchored and IUnAnchored to AnchorableComponent * Update power components and remove old disposals map * Remove redundant sprite layers * Add tile pry command * Fix tilepry command * Fix DisposalJunctionComponent missing a component reference * Add anchor by radius command * Add Y-Junctions * Add disposal bend * Add unanchor command * Change DisposalJunction prototypes to specify their angles * Fix disposal units being hidden below the floor * Removed IAnhored and IUnAnchored interfaces * Replace CanBeNull annotation with nullable reference types * Update showwires command * Add recycler recycling items * Added angle and speed properties to ConveyorComponent * Fix conveyort textures * Add animation to the disposal unit * Fix anchor and unanchor commands sometimes not finding any entities * Fix not reading flush_time from disposal unit prototype * Fix merge conflict wrong using * Fix disposal, recycling and conveyor texture paths Delete diverters * Update visualizer names * Add DisposableComponent, change drag and drop to work with multiple components Ignoreinsideblocker client side for drag and drops, like on the server Add more comments * Add conveyor belts properly moving entities on top * Anchorr wires * Change conveyor bounds to 0.49 * Anchor catwalks, airlocks, gravity generators, low walls, wires and windows * Add starting/stopping conveyors * Add reversed conveyors * Add conveyor switches * Move InDisposalsComponent code to DisposableComponent * Add ExitVector method to tubes * Fix not updating tube references when disconnecting one * Replace IoCManager call with dependency * Add tubes disconnecting if they move too far apart from one another * Move disposals action blocking to shared * Add rotating and flipping pipes * Make conveyor intersection calculations approximate * Fix 1% chance of the server crashing when initializing the map Happens when emergency lockers remove themselves * Add disposal unit interface * Make disposal units refuse items if not powered * Make disposal tubes hide only when anchored * Make disposal junction arrows visible to mere mortals * Add disposal tubes breaking * Add tubeconnections command * Add missing verb attribute * Add flipped disposal junction * Add ids and linking to conveyors and switches * Add conveyor switch prying and placing * Add anchoring conveyor switches and refactor placing them * Add missing serializable attributes from DisposableComponentState * Make conveyor speed VV ReadWrite * Change drawdepth of conveyors to FloorObjects * Make conveyor anchored check consistent * Remove anchoring interaction from switches * Add conveyor switch id syncing and move switches slightly when pried * Make entities in containers not able to be moved by conveyors * Add conveyor and switches loose textures * Merge conflict fixes * Add disposal unit test * Add flushing test to disposal unit test * Add disposal unit flush fail test * Add disposals to the saltern map * Fix saltern disposal junctions * Add power checks to the recycler * Fix disposal unit placement in maintenance closet * Remove disposal junctions from saltern * Readd junctions to saltern * Add the chemmaster to saltern at the request of Ike * Move the chemistry disposal unit * Fix casing of disposal flush sound * More merge conflict fixes * Fix a compiler warning. * Remove popup invocation from buckle * Remove showPopup parameter from InteractionChecks * Remove unnecessary physics components Fixes the physics system dying * Replace PhysicsComponent usages with CollidableComponent * Update existing code for the new controller system * Change conveyors to use a VirtualController instead of teleporting the entity * Remove visualizer 2d suffix and update physics code * Transition code to new controller system * Fix shuttles not moving * Fix throwing * Fix guns * Change hands to use physics.Stop() and remove item fumble method * Add syncing conveyor switches states * Fix the recycler wanting to be a conveyor too hard * Fix showwires > showsubfloor rename in mapping command * Fix wifi air conveyors * Fix test error * Add showsubfloorforever command Changes drawdepth of the relevant entities * Disable opening the disposal unit interface while inside * Add closing the disposal unit interface when getting inside * Add closing the interface when the disposal unit component is removed * Add removing entities on disposal unit component removal * Delay disposal unit flush and fix serialization * Implement pressure in disposal units * Fix chain engaging a disposal unit * Implement states to the disposal unit * Fix missing imports from merge conflict * Update Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com> * Address some reviews * Fix za buildo * Use container helper to detach disposables * Make conveyors use the construction system * Make conveyor groups and syncing sane * Make flip flip brave * Add activate interface to conveyor switches * Fix not removing the switch from its group when it's deleted * Fix not registering conveyors and switches on initialize * Stop using 0 as null * Disconnect conveyors and switches when disposing of a group * Make disposal units not able to be exited when flushing * Make disposal units flush after a configurable 30 seconds * Add handle and light layers to the disposal unit * Merge engaging and flushing * Update saltern.yml * I love using 0 as null * Make disposal unit visual layers make sense * Remove duplicate remove method in disposal units and update light * Replace DisposableComponent with disposal holders * Fix disposal holders deleting their contents on deletion * Account for disposal unit pressure in tests and make a failed flush autoengage * Rename disposable to holder * Fix junction connections * Disable self insert and flush verbs when inside a disposal unit * Fix spamming the engage button making the animation reset * Make the recycler take materials into account properly Fix cablestack1 not existing * Merge conflict fixes * Fix pipes not being saved anchored * Change conveyors and groups to not use an id Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-07-30 23:45:28 +02:00
private Container _contents = null!;
/// <summary>
/// The total amount of time that it will take for this entity to
/// be pushed to the next tube
/// </summary>
[ViewVariables]
private float StartingTime { get; set; }
/// <summary>
/// Time left until the entity is pushed to the next tube
/// </summary>
[ViewVariables]
private float TimeLeft { get; set; }
[ViewVariables]
public IDisposalTubeComponent? PreviousTube { get; set; }
[ViewVariables]
public IDisposalTubeComponent? CurrentTube { get; private set; }
[ViewVariables]
public IDisposalTubeComponent? NextTube { get; set; }
/// <summary>
/// A list of tags attached to the content, used for sorting
/// </summary>
[ViewVariables]
public HashSet<string> Tags { get; set; } = new();
Serialization v3 content PR (#3491) * serv3 in shared pt 1 * beginning of deepclone api * progress in implementing ideepclone & serv3 in content * adds target * its cant hurt you it cant hurt you * more changes to content.server * adds dataclasses * almost there * renamed & edited entry * finishes refactoring content to use serv3 * gasmixture runtimes, next: reagentunit * fucin hell that was an annoying one * adds flags * fixes some yaml errors * removes comment * fixes generic components for now * removes todo actually clones values my god paul fixes bug involving resolving custom data classes from other proj renames dataclass fixes spritecomp adds WithFormat.Constants support * adds deepclone to ResistanceSet * adds a bunch of deepclone implementations adds a deepclone analyzer (TODO) adds a deep clone fallback for classes & structs * fixes a bunch of runtimes * adds deepclone to entityuid * adds generator to sln * gets rid of warnings * fixes * argh * componentdata refactors * more deepclone impl * heck me i reworked all of content deepclone * renames custom dataclasstarget * misc * reworks prototypes * deepclone nuke * renamed customdataclass attribute * fixes everything * misc fixed * the killcommit * getting there * changed yamlfieldattribute namespace * adds back iselfserialize * renames everything to data(field/definition) * ouch * Fix most errors on content * Fix more errors in content * Fix some components * work on tests * fixes some customdataclasses * fuggin shit * yes * yeas * Remove data classes * Data field naming fixes * arg * Git resetti RobustToolbox * Merge fixes * General fixes * Fix startup serialization errors * Fix DamageContainerPrototype when supported classes or types are null * Implement construction graph step type serializer * Fix up construction serialization * Fix up construction serialization part 2 * Fix null list in technology database component * Fix body serialization * Fix entity storage serialization * Fix actions serialization * Fix AI serialization * Fix reaction serialization * Fix body serialization * Fix grid atmosphere serialization * Rename IServ3Manager to ISerializationManager * Convert every non generic serializer to the new format, general fixes * Serialization and body system fix * pushinheritance fix * Update all prototypes to have a parent and have consistent id/parent properties * Merge fixes * smh my head * cuddling slaps * Content commit for engine PR * stuff * more fixes * argh * yes even you are fixed * changelog fixes * fixes seeds * argh * Test fixes * Add writing for alert order prototype * Fix alert order writing * FIX * its been alot ok * Fix the rest of the visualizers * Fix server alerts component tests * Fix alert prototype tests not using the read value * Fix alert prototype tests initializing serialization multiple times * THIS IS AN AMERICAN CODEBASE GOD BLESS THE USA * Add ImplicitDataDefinitionForInheritors to IMechanismBehavior Fixes the behaviors not being found * Fix NRE in strap component Good night to the 1 buckle optimization * Fix clothing component slot flags serialization tag * Fix body component in all components test * Merge fixes * ffs * Make construction graph prototype use serialization hooks * human yaml linted * a * Do the thing for construction * stuff * a * monke see yaml linter * LINT HARDER * Remove redundant todo * yes * Add skip hook argument to readers and copiers * we gamin * test/datafield fixes * adds more verbose validation * moves linter to action * Improve construction graph step type serializer error message * Fix ammo box component NRE * gamin * some updates to the linter * yes * removes that test * misc fixes * array fix priority fix misc fixes * adds proper info the validation * adds alwaysrelevant usa * Make yaml linter take half as long to run (~50% less) * Make yaml linter 5 times faster (~80% less execution time) * based vera being based * fixes mapsaving * warning cleanup & moves surpressor * removes old msbuild targets * Revert "Make yaml linter 5 times faster (~80% less execution time)" This reverts commit 3e6091359a26252c3e98828199553de668031c63. * Add -nowarn to yaml linter run configuration * Improve yaml linter message feedback * Make dependencies an argument instead of a property on the serialization manager * yamllinting slaps * Clean up type serializers * Move yaml linter code to its own method * Fix yaml errors * Change yaml linter action name and remove -nowarn * yaml linter please shut * Git resetti robust toolbox Co-authored-by: Paul <ritter.paul1+git@googlemail.com> Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2021-03-05 01:08:38 +01:00
[ViewVariables]
[DataField("air")]
public GasMixture Air { get; set; } = new GasMixture(Atmospherics.CellVolume);
public override void Initialize()
{
base.Initialize();
_contents = ContainerHelpers.EnsureContainer<Container>(Owner, nameof(DisposalHolderComponent));
}
public override void OnRemove()
{
base.OnRemove();
ExitDisposals();
}
Add the trash man (#1367) * Add disposal.rsi * Rename disposal resource to disposal.rsi and create basic components * Add disposal nets * Add pushing entities along the disposal network * Add disposal unit * Unregister disposable component * Add flush and selfinsert verbs to disposal unit * Add gradual disposals movement * Fix being able to walk through space for a while after exiting disposals * Multiply disposals speed by 10 And fix early returns when moving an entity * Rename Disposable component to InDisposals * Remove DisposalNet and add on anchor events * Remove anchored events, moved to interfaces * Code cleanup * Fix adjacent tubes' connections when a tube connects * Fix jittery movement in disposals * Remove Logger.Debug call * Move disposals updates to InDisposalsComponent * Fix adjacent connection valid directions check * Disposal tubes now throw you out where they are facing * Add disposal unit exit cooldown * Set different disposal pipe sprite state depending on anchored value * Add recycler * Add recycler animation * Add bloody texture to the recycler when grinding a living being * Add PowerDevice component to the disposal unit * Made the Recycler center on the grid * Add disposal junction * Add picking a random direction if junction is entered from the output side * Add disposal flush and clang sounds Taken from VGStation * Move disposal flush and clang sound file names to exposedata * Add disposalsmap.yml to test with * Add summaries to DisposalUnit fields * Add sideDegrees yaml property to disposal junctions * Fix outdated usings * Add conveyor resources * Update RobustToolbox * More merge fixes Add conveyor collision masks * Add ConveyorComponent * Fix crash when reentering a body * Merge branch 'master' into disposals-1147 * Reduce recycler bounds, set hard to false, add summary and expose "safe" to yaml * Move IAnchored and IUnAnchored to AnchorableComponent * Update power components and remove old disposals map * Remove redundant sprite layers * Add tile pry command * Fix tilepry command * Fix DisposalJunctionComponent missing a component reference * Add anchor by radius command * Add Y-Junctions * Add disposal bend * Add unanchor command * Change DisposalJunction prototypes to specify their angles * Fix disposal units being hidden below the floor * Removed IAnhored and IUnAnchored interfaces * Replace CanBeNull annotation with nullable reference types * Update showwires command * Add recycler recycling items * Added angle and speed properties to ConveyorComponent * Fix conveyort textures * Add animation to the disposal unit * Fix anchor and unanchor commands sometimes not finding any entities * Fix not reading flush_time from disposal unit prototype * Fix merge conflict wrong using * Fix disposal, recycling and conveyor texture paths Delete diverters * Update visualizer names * Add DisposableComponent, change drag and drop to work with multiple components Ignoreinsideblocker client side for drag and drops, like on the server Add more comments * Add conveyor belts properly moving entities on top * Anchorr wires * Change conveyor bounds to 0.49 * Anchor catwalks, airlocks, gravity generators, low walls, wires and windows * Add starting/stopping conveyors * Add reversed conveyors * Add conveyor switches * Move InDisposalsComponent code to DisposableComponent * Add ExitVector method to tubes * Fix not updating tube references when disconnecting one * Replace IoCManager call with dependency * Add tubes disconnecting if they move too far apart from one another * Move disposals action blocking to shared * Add rotating and flipping pipes * Make conveyor intersection calculations approximate * Fix 1% chance of the server crashing when initializing the map Happens when emergency lockers remove themselves * Add disposal unit interface * Make disposal units refuse items if not powered * Make disposal tubes hide only when anchored * Make disposal junction arrows visible to mere mortals * Add disposal tubes breaking * Add tubeconnections command * Add missing verb attribute * Add flipped disposal junction * Add ids and linking to conveyors and switches * Add conveyor switch prying and placing * Add anchoring conveyor switches and refactor placing them * Add missing serializable attributes from DisposableComponentState * Make conveyor speed VV ReadWrite * Change drawdepth of conveyors to FloorObjects * Make conveyor anchored check consistent * Remove anchoring interaction from switches * Add conveyor switch id syncing and move switches slightly when pried * Make entities in containers not able to be moved by conveyors * Add conveyor and switches loose textures * Merge conflict fixes * Add disposal unit test * Add flushing test to disposal unit test * Add disposal unit flush fail test * Add disposals to the saltern map * Fix saltern disposal junctions * Add power checks to the recycler * Fix disposal unit placement in maintenance closet * Remove disposal junctions from saltern * Readd junctions to saltern * Add the chemmaster to saltern at the request of Ike * Move the chemistry disposal unit * Fix casing of disposal flush sound * More merge conflict fixes * Fix a compiler warning. * Remove popup invocation from buckle * Remove showPopup parameter from InteractionChecks * Remove unnecessary physics components Fixes the physics system dying * Replace PhysicsComponent usages with CollidableComponent * Update existing code for the new controller system * Change conveyors to use a VirtualController instead of teleporting the entity * Remove visualizer 2d suffix and update physics code * Transition code to new controller system * Fix shuttles not moving * Fix throwing * Fix guns * Change hands to use physics.Stop() and remove item fumble method * Add syncing conveyor switches states * Fix the recycler wanting to be a conveyor too hard * Fix showwires > showsubfloor rename in mapping command * Fix wifi air conveyors * Fix test error * Add showsubfloorforever command Changes drawdepth of the relevant entities * Disable opening the disposal unit interface while inside * Add closing the disposal unit interface when getting inside * Add closing the interface when the disposal unit component is removed * Add removing entities on disposal unit component removal * Delay disposal unit flush and fix serialization * Implement pressure in disposal units * Fix chain engaging a disposal unit * Implement states to the disposal unit * Fix missing imports from merge conflict * Update Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com> * Address some reviews * Fix za buildo * Use container helper to detach disposables * Make conveyors use the construction system * Make conveyor groups and syncing sane * Make flip flip brave * Add activate interface to conveyor switches * Fix not removing the switch from its group when it's deleted * Fix not registering conveyors and switches on initialize * Stop using 0 as null * Disconnect conveyors and switches when disposing of a group * Make disposal units not able to be exited when flushing * Make disposal units flush after a configurable 30 seconds * Add handle and light layers to the disposal unit * Merge engaging and flushing * Update saltern.yml * I love using 0 as null * Make disposal unit visual layers make sense * Remove duplicate remove method in disposal units and update light * Replace DisposableComponent with disposal holders * Fix disposal holders deleting their contents on deletion * Account for disposal unit pressure in tests and make a failed flush autoengage * Rename disposable to holder * Fix junction connections * Disable self insert and flush verbs when inside a disposal unit * Fix spamming the engage button making the animation reset * Make the recycler take materials into account properly Fix cablestack1 not existing * Merge conflict fixes * Fix pipes not being saved anchored * Change conveyors and groups to not use an id Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-07-30 23:45:28 +02:00
private bool CanInsert(IEntity entity)
{
if (!_contents.CanInsert(entity))
{
return false;
}
return entity.HasComponent<ItemComponent>() ||
entity.HasComponent<IBody>();
Add the trash man (#1367) * Add disposal.rsi * Rename disposal resource to disposal.rsi and create basic components * Add disposal nets * Add pushing entities along the disposal network * Add disposal unit * Unregister disposable component * Add flush and selfinsert verbs to disposal unit * Add gradual disposals movement * Fix being able to walk through space for a while after exiting disposals * Multiply disposals speed by 10 And fix early returns when moving an entity * Rename Disposable component to InDisposals * Remove DisposalNet and add on anchor events * Remove anchored events, moved to interfaces * Code cleanup * Fix adjacent tubes' connections when a tube connects * Fix jittery movement in disposals * Remove Logger.Debug call * Move disposals updates to InDisposalsComponent * Fix adjacent connection valid directions check * Disposal tubes now throw you out where they are facing * Add disposal unit exit cooldown * Set different disposal pipe sprite state depending on anchored value * Add recycler * Add recycler animation * Add bloody texture to the recycler when grinding a living being * Add PowerDevice component to the disposal unit * Made the Recycler center on the grid * Add disposal junction * Add picking a random direction if junction is entered from the output side * Add disposal flush and clang sounds Taken from VGStation * Move disposal flush and clang sound file names to exposedata * Add disposalsmap.yml to test with * Add summaries to DisposalUnit fields * Add sideDegrees yaml property to disposal junctions * Fix outdated usings * Add conveyor resources * Update RobustToolbox * More merge fixes Add conveyor collision masks * Add ConveyorComponent * Fix crash when reentering a body * Merge branch 'master' into disposals-1147 * Reduce recycler bounds, set hard to false, add summary and expose "safe" to yaml * Move IAnchored and IUnAnchored to AnchorableComponent * Update power components and remove old disposals map * Remove redundant sprite layers * Add tile pry command * Fix tilepry command * Fix DisposalJunctionComponent missing a component reference * Add anchor by radius command * Add Y-Junctions * Add disposal bend * Add unanchor command * Change DisposalJunction prototypes to specify their angles * Fix disposal units being hidden below the floor * Removed IAnhored and IUnAnchored interfaces * Replace CanBeNull annotation with nullable reference types * Update showwires command * Add recycler recycling items * Added angle and speed properties to ConveyorComponent * Fix conveyort textures * Add animation to the disposal unit * Fix anchor and unanchor commands sometimes not finding any entities * Fix not reading flush_time from disposal unit prototype * Fix merge conflict wrong using * Fix disposal, recycling and conveyor texture paths Delete diverters * Update visualizer names * Add DisposableComponent, change drag and drop to work with multiple components Ignoreinsideblocker client side for drag and drops, like on the server Add more comments * Add conveyor belts properly moving entities on top * Anchorr wires * Change conveyor bounds to 0.49 * Anchor catwalks, airlocks, gravity generators, low walls, wires and windows * Add starting/stopping conveyors * Add reversed conveyors * Add conveyor switches * Move InDisposalsComponent code to DisposableComponent * Add ExitVector method to tubes * Fix not updating tube references when disconnecting one * Replace IoCManager call with dependency * Add tubes disconnecting if they move too far apart from one another * Move disposals action blocking to shared * Add rotating and flipping pipes * Make conveyor intersection calculations approximate * Fix 1% chance of the server crashing when initializing the map Happens when emergency lockers remove themselves * Add disposal unit interface * Make disposal units refuse items if not powered * Make disposal tubes hide only when anchored * Make disposal junction arrows visible to mere mortals * Add disposal tubes breaking * Add tubeconnections command * Add missing verb attribute * Add flipped disposal junction * Add ids and linking to conveyors and switches * Add conveyor switch prying and placing * Add anchoring conveyor switches and refactor placing them * Add missing serializable attributes from DisposableComponentState * Make conveyor speed VV ReadWrite * Change drawdepth of conveyors to FloorObjects * Make conveyor anchored check consistent * Remove anchoring interaction from switches * Add conveyor switch id syncing and move switches slightly when pried * Make entities in containers not able to be moved by conveyors * Add conveyor and switches loose textures * Merge conflict fixes * Add disposal unit test * Add flushing test to disposal unit test * Add disposal unit flush fail test * Add disposals to the saltern map * Fix saltern disposal junctions * Add power checks to the recycler * Fix disposal unit placement in maintenance closet * Remove disposal junctions from saltern * Readd junctions to saltern * Add the chemmaster to saltern at the request of Ike * Move the chemistry disposal unit * Fix casing of disposal flush sound * More merge conflict fixes * Fix a compiler warning. * Remove popup invocation from buckle * Remove showPopup parameter from InteractionChecks * Remove unnecessary physics components Fixes the physics system dying * Replace PhysicsComponent usages with CollidableComponent * Update existing code for the new controller system * Change conveyors to use a VirtualController instead of teleporting the entity * Remove visualizer 2d suffix and update physics code * Transition code to new controller system * Fix shuttles not moving * Fix throwing * Fix guns * Change hands to use physics.Stop() and remove item fumble method * Add syncing conveyor switches states * Fix the recycler wanting to be a conveyor too hard * Fix showwires > showsubfloor rename in mapping command * Fix wifi air conveyors * Fix test error * Add showsubfloorforever command Changes drawdepth of the relevant entities * Disable opening the disposal unit interface while inside * Add closing the disposal unit interface when getting inside * Add closing the interface when the disposal unit component is removed * Add removing entities on disposal unit component removal * Delay disposal unit flush and fix serialization * Implement pressure in disposal units * Fix chain engaging a disposal unit * Implement states to the disposal unit * Fix missing imports from merge conflict * Update Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com> * Address some reviews * Fix za buildo * Use container helper to detach disposables * Make conveyors use the construction system * Make conveyor groups and syncing sane * Make flip flip brave * Add activate interface to conveyor switches * Fix not removing the switch from its group when it's deleted * Fix not registering conveyors and switches on initialize * Stop using 0 as null * Disconnect conveyors and switches when disposing of a group * Make disposal units not able to be exited when flushing * Make disposal units flush after a configurable 30 seconds * Add handle and light layers to the disposal unit * Merge engaging and flushing * Update saltern.yml * I love using 0 as null * Make disposal unit visual layers make sense * Remove duplicate remove method in disposal units and update light * Replace DisposableComponent with disposal holders * Fix disposal holders deleting their contents on deletion * Account for disposal unit pressure in tests and make a failed flush autoengage * Rename disposable to holder * Fix junction connections * Disable self insert and flush verbs when inside a disposal unit * Fix spamming the engage button making the animation reset * Make the recycler take materials into account properly Fix cablestack1 not existing * Merge conflict fixes * Fix pipes not being saved anchored * Change conveyors and groups to not use an id Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-07-30 23:45:28 +02:00
}
public bool TryInsert(IEntity entity)
{
if (!CanInsert(entity) || !_contents.Insert(entity))
{
return false;
}
Physics (#3485) * Content side new physics structure * BroadPhase outline done * But we need to fix WorldAABB * Fix static pvs AABB * Fix import * Rando fixes * B is for balloon * Change human mob hitbox to circle * Decent movement * Start adding friction to player controller I think it's the best way to go about it to keep other objects somewhat consistent for physics. * This baby can fit so many physics bugs in it. * Slight mob mover optimisations. * Player mover kinda works okay. * Beginnings of testbed * More testbed * Circlestack bed * Namespaces * BB fixes * Pull WorldAABB * Joint pulling * Semi-decent movement I guess. * Pulling better * Bullet controller + old movement * im too dumb for this shit * Use kinematic mob controller again It's probably for the best TBH * Stashed shitcode * Remove SlipController * In which movement code is entirely refactored * Singularity fix * Fix ApplyLinearImpulse * MoveRelay fix * Fix door collisions * Disable subfloor collisions Saves on broadphase a fair bit * Re-implement ClimbController * Zumzum's pressure * Laggy item throwing * Minor atmos change * Some caching * Optimise controllers * Optimise CollideWith to hell and back * Re-do throwing and tile friction * Landing too * Optimise controllers * Move CCVars and other stuff swept is beautiful * Cleanup a bunch of controllers * Fix shooting and high pressure movement controller * Flashing improvements * Stuff and things * Combat collisions * Combat mode collisions * Pulling distance joint again * Cleanup physics interfaces * More like scuffedularity * Shit's fucked * Haha tests go green * Bigmoneycrab * Fix dupe pulling * Zumzum's based fix * Don't run tile friction for non-predicted bodies * Experimental pulling improvement * Everything's a poly now * Optimise AI region debugging a bit Could still be better but should improve default performance a LOT * Mover no updater * Crazy kinematic body idea * Good collisions * KinematicController * Fix aghost * Throwing refactor * Pushing cleanup * Fix throwing and footstep sounds * Frametime in ICollideBehavior * Fix stuff * Actually fix weightlessness * Optimise collision behaviors a lot * Make open lockers still collide with walls * powwweeerrrrr * Merge master proper * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * Ch ch ch changesss * SHIP IT * Fix #if DEBUG * Fix vaulting and item locker collision * Fix throwing * Editing yaml by hand what can go wrong * on * Last yaml fixes * Okay now it's fixed * Linter Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com> Co-authored-by: Vera Aguilera Puerto <zddm@outlook.es>
2021-03-08 04:09:59 +11:00
if (entity.TryGetComponent(out IPhysBody? physics))
{
physics.CanCollide = false;
}
Add the trash man (#1367) * Add disposal.rsi * Rename disposal resource to disposal.rsi and create basic components * Add disposal nets * Add pushing entities along the disposal network * Add disposal unit * Unregister disposable component * Add flush and selfinsert verbs to disposal unit * Add gradual disposals movement * Fix being able to walk through space for a while after exiting disposals * Multiply disposals speed by 10 And fix early returns when moving an entity * Rename Disposable component to InDisposals * Remove DisposalNet and add on anchor events * Remove anchored events, moved to interfaces * Code cleanup * Fix adjacent tubes' connections when a tube connects * Fix jittery movement in disposals * Remove Logger.Debug call * Move disposals updates to InDisposalsComponent * Fix adjacent connection valid directions check * Disposal tubes now throw you out where they are facing * Add disposal unit exit cooldown * Set different disposal pipe sprite state depending on anchored value * Add recycler * Add recycler animation * Add bloody texture to the recycler when grinding a living being * Add PowerDevice component to the disposal unit * Made the Recycler center on the grid * Add disposal junction * Add picking a random direction if junction is entered from the output side * Add disposal flush and clang sounds Taken from VGStation * Move disposal flush and clang sound file names to exposedata * Add disposalsmap.yml to test with * Add summaries to DisposalUnit fields * Add sideDegrees yaml property to disposal junctions * Fix outdated usings * Add conveyor resources * Update RobustToolbox * More merge fixes Add conveyor collision masks * Add ConveyorComponent * Fix crash when reentering a body * Merge branch 'master' into disposals-1147 * Reduce recycler bounds, set hard to false, add summary and expose "safe" to yaml * Move IAnchored and IUnAnchored to AnchorableComponent * Update power components and remove old disposals map * Remove redundant sprite layers * Add tile pry command * Fix tilepry command * Fix DisposalJunctionComponent missing a component reference * Add anchor by radius command * Add Y-Junctions * Add disposal bend * Add unanchor command * Change DisposalJunction prototypes to specify their angles * Fix disposal units being hidden below the floor * Removed IAnhored and IUnAnchored interfaces * Replace CanBeNull annotation with nullable reference types * Update showwires command * Add recycler recycling items * Added angle and speed properties to ConveyorComponent * Fix conveyort textures * Add animation to the disposal unit * Fix anchor and unanchor commands sometimes not finding any entities * Fix not reading flush_time from disposal unit prototype * Fix merge conflict wrong using * Fix disposal, recycling and conveyor texture paths Delete diverters * Update visualizer names * Add DisposableComponent, change drag and drop to work with multiple components Ignoreinsideblocker client side for drag and drops, like on the server Add more comments * Add conveyor belts properly moving entities on top * Anchorr wires * Change conveyor bounds to 0.49 * Anchor catwalks, airlocks, gravity generators, low walls, wires and windows * Add starting/stopping conveyors * Add reversed conveyors * Add conveyor switches * Move InDisposalsComponent code to DisposableComponent * Add ExitVector method to tubes * Fix not updating tube references when disconnecting one * Replace IoCManager call with dependency * Add tubes disconnecting if they move too far apart from one another * Move disposals action blocking to shared * Add rotating and flipping pipes * Make conveyor intersection calculations approximate * Fix 1% chance of the server crashing when initializing the map Happens when emergency lockers remove themselves * Add disposal unit interface * Make disposal units refuse items if not powered * Make disposal tubes hide only when anchored * Make disposal junction arrows visible to mere mortals * Add disposal tubes breaking * Add tubeconnections command * Add missing verb attribute * Add flipped disposal junction * Add ids and linking to conveyors and switches * Add conveyor switch prying and placing * Add anchoring conveyor switches and refactor placing them * Add missing serializable attributes from DisposableComponentState * Make conveyor speed VV ReadWrite * Change drawdepth of conveyors to FloorObjects * Make conveyor anchored check consistent * Remove anchoring interaction from switches * Add conveyor switch id syncing and move switches slightly when pried * Make entities in containers not able to be moved by conveyors * Add conveyor and switches loose textures * Merge conflict fixes * Add disposal unit test * Add flushing test to disposal unit test * Add disposal unit flush fail test * Add disposals to the saltern map * Fix saltern disposal junctions * Add power checks to the recycler * Fix disposal unit placement in maintenance closet * Remove disposal junctions from saltern * Readd junctions to saltern * Add the chemmaster to saltern at the request of Ike * Move the chemistry disposal unit * Fix casing of disposal flush sound * More merge conflict fixes * Fix a compiler warning. * Remove popup invocation from buckle * Remove showPopup parameter from InteractionChecks * Remove unnecessary physics components Fixes the physics system dying * Replace PhysicsComponent usages with CollidableComponent * Update existing code for the new controller system * Change conveyors to use a VirtualController instead of teleporting the entity * Remove visualizer 2d suffix and update physics code * Transition code to new controller system * Fix shuttles not moving * Fix throwing * Fix guns * Change hands to use physics.Stop() and remove item fumble method * Add syncing conveyor switches states * Fix the recycler wanting to be a conveyor too hard * Fix showwires > showsubfloor rename in mapping command * Fix wifi air conveyors * Fix test error * Add showsubfloorforever command Changes drawdepth of the relevant entities * Disable opening the disposal unit interface while inside * Add closing the disposal unit interface when getting inside * Add closing the interface when the disposal unit component is removed * Add removing entities on disposal unit component removal * Delay disposal unit flush and fix serialization * Implement pressure in disposal units * Fix chain engaging a disposal unit * Implement states to the disposal unit * Fix missing imports from merge conflict * Update Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com> * Address some reviews * Fix za buildo * Use container helper to detach disposables * Make conveyors use the construction system * Make conveyor groups and syncing sane * Make flip flip brave * Add activate interface to conveyor switches * Fix not removing the switch from its group when it's deleted * Fix not registering conveyors and switches on initialize * Stop using 0 as null * Disconnect conveyors and switches when disposing of a group * Make disposal units not able to be exited when flushing * Make disposal units flush after a configurable 30 seconds * Add handle and light layers to the disposal unit * Merge engaging and flushing * Update saltern.yml * I love using 0 as null * Make disposal unit visual layers make sense * Remove duplicate remove method in disposal units and update light * Replace DisposableComponent with disposal holders * Fix disposal holders deleting their contents on deletion * Account for disposal unit pressure in tests and make a failed flush autoengage * Rename disposable to holder * Fix junction connections * Disable self insert and flush verbs when inside a disposal unit * Fix spamming the engage button making the animation reset * Make the recycler take materials into account properly Fix cablestack1 not existing * Merge conflict fixes * Fix pipes not being saved anchored * Change conveyors and groups to not use an id Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-07-30 23:45:28 +02:00
return true;
}
public void EnterTube(IDisposalTubeComponent tube)
{
if (CurrentTube != null)
{
PreviousTube = CurrentTube;
}
Owner.Transform.Coordinates = tube.Owner.Transform.Coordinates;
Add the trash man (#1367) * Add disposal.rsi * Rename disposal resource to disposal.rsi and create basic components * Add disposal nets * Add pushing entities along the disposal network * Add disposal unit * Unregister disposable component * Add flush and selfinsert verbs to disposal unit * Add gradual disposals movement * Fix being able to walk through space for a while after exiting disposals * Multiply disposals speed by 10 And fix early returns when moving an entity * Rename Disposable component to InDisposals * Remove DisposalNet and add on anchor events * Remove anchored events, moved to interfaces * Code cleanup * Fix adjacent tubes' connections when a tube connects * Fix jittery movement in disposals * Remove Logger.Debug call * Move disposals updates to InDisposalsComponent * Fix adjacent connection valid directions check * Disposal tubes now throw you out where they are facing * Add disposal unit exit cooldown * Set different disposal pipe sprite state depending on anchored value * Add recycler * Add recycler animation * Add bloody texture to the recycler when grinding a living being * Add PowerDevice component to the disposal unit * Made the Recycler center on the grid * Add disposal junction * Add picking a random direction if junction is entered from the output side * Add disposal flush and clang sounds Taken from VGStation * Move disposal flush and clang sound file names to exposedata * Add disposalsmap.yml to test with * Add summaries to DisposalUnit fields * Add sideDegrees yaml property to disposal junctions * Fix outdated usings * Add conveyor resources * Update RobustToolbox * More merge fixes Add conveyor collision masks * Add ConveyorComponent * Fix crash when reentering a body * Merge branch 'master' into disposals-1147 * Reduce recycler bounds, set hard to false, add summary and expose "safe" to yaml * Move IAnchored and IUnAnchored to AnchorableComponent * Update power components and remove old disposals map * Remove redundant sprite layers * Add tile pry command * Fix tilepry command * Fix DisposalJunctionComponent missing a component reference * Add anchor by radius command * Add Y-Junctions * Add disposal bend * Add unanchor command * Change DisposalJunction prototypes to specify their angles * Fix disposal units being hidden below the floor * Removed IAnhored and IUnAnchored interfaces * Replace CanBeNull annotation with nullable reference types * Update showwires command * Add recycler recycling items * Added angle and speed properties to ConveyorComponent * Fix conveyort textures * Add animation to the disposal unit * Fix anchor and unanchor commands sometimes not finding any entities * Fix not reading flush_time from disposal unit prototype * Fix merge conflict wrong using * Fix disposal, recycling and conveyor texture paths Delete diverters * Update visualizer names * Add DisposableComponent, change drag and drop to work with multiple components Ignoreinsideblocker client side for drag and drops, like on the server Add more comments * Add conveyor belts properly moving entities on top * Anchorr wires * Change conveyor bounds to 0.49 * Anchor catwalks, airlocks, gravity generators, low walls, wires and windows * Add starting/stopping conveyors * Add reversed conveyors * Add conveyor switches * Move InDisposalsComponent code to DisposableComponent * Add ExitVector method to tubes * Fix not updating tube references when disconnecting one * Replace IoCManager call with dependency * Add tubes disconnecting if they move too far apart from one another * Move disposals action blocking to shared * Add rotating and flipping pipes * Make conveyor intersection calculations approximate * Fix 1% chance of the server crashing when initializing the map Happens when emergency lockers remove themselves * Add disposal unit interface * Make disposal units refuse items if not powered * Make disposal tubes hide only when anchored * Make disposal junction arrows visible to mere mortals * Add disposal tubes breaking * Add tubeconnections command * Add missing verb attribute * Add flipped disposal junction * Add ids and linking to conveyors and switches * Add conveyor switch prying and placing * Add anchoring conveyor switches and refactor placing them * Add missing serializable attributes from DisposableComponentState * Make conveyor speed VV ReadWrite * Change drawdepth of conveyors to FloorObjects * Make conveyor anchored check consistent * Remove anchoring interaction from switches * Add conveyor switch id syncing and move switches slightly when pried * Make entities in containers not able to be moved by conveyors * Add conveyor and switches loose textures * Merge conflict fixes * Add disposal unit test * Add flushing test to disposal unit test * Add disposal unit flush fail test * Add disposals to the saltern map * Fix saltern disposal junctions * Add power checks to the recycler * Fix disposal unit placement in maintenance closet * Remove disposal junctions from saltern * Readd junctions to saltern * Add the chemmaster to saltern at the request of Ike * Move the chemistry disposal unit * Fix casing of disposal flush sound * More merge conflict fixes * Fix a compiler warning. * Remove popup invocation from buckle * Remove showPopup parameter from InteractionChecks * Remove unnecessary physics components Fixes the physics system dying * Replace PhysicsComponent usages with CollidableComponent * Update existing code for the new controller system * Change conveyors to use a VirtualController instead of teleporting the entity * Remove visualizer 2d suffix and update physics code * Transition code to new controller system * Fix shuttles not moving * Fix throwing * Fix guns * Change hands to use physics.Stop() and remove item fumble method * Add syncing conveyor switches states * Fix the recycler wanting to be a conveyor too hard * Fix showwires > showsubfloor rename in mapping command * Fix wifi air conveyors * Fix test error * Add showsubfloorforever command Changes drawdepth of the relevant entities * Disable opening the disposal unit interface while inside * Add closing the disposal unit interface when getting inside * Add closing the interface when the disposal unit component is removed * Add removing entities on disposal unit component removal * Delay disposal unit flush and fix serialization * Implement pressure in disposal units * Fix chain engaging a disposal unit * Implement states to the disposal unit * Fix missing imports from merge conflict * Update Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com> * Address some reviews * Fix za buildo * Use container helper to detach disposables * Make conveyors use the construction system * Make conveyor groups and syncing sane * Make flip flip brave * Add activate interface to conveyor switches * Fix not removing the switch from its group when it's deleted * Fix not registering conveyors and switches on initialize * Stop using 0 as null * Disconnect conveyors and switches when disposing of a group * Make disposal units not able to be exited when flushing * Make disposal units flush after a configurable 30 seconds * Add handle and light layers to the disposal unit * Merge engaging and flushing * Update saltern.yml * I love using 0 as null * Make disposal unit visual layers make sense * Remove duplicate remove method in disposal units and update light * Replace DisposableComponent with disposal holders * Fix disposal holders deleting their contents on deletion * Account for disposal unit pressure in tests and make a failed flush autoengage * Rename disposable to holder * Fix junction connections * Disable self insert and flush verbs when inside a disposal unit * Fix spamming the engage button making the animation reset * Make the recycler take materials into account properly Fix cablestack1 not existing * Merge conflict fixes * Fix pipes not being saved anchored * Change conveyors and groups to not use an id Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-07-30 23:45:28 +02:00
CurrentTube = tube;
NextTube = tube.NextTube(this);
StartingTime = 0.1f;
TimeLeft = 0.1f;
}
public void ExitDisposals()
{
if (_deletionRequested || Deleted)
return;
Add the trash man (#1367) * Add disposal.rsi * Rename disposal resource to disposal.rsi and create basic components * Add disposal nets * Add pushing entities along the disposal network * Add disposal unit * Unregister disposable component * Add flush and selfinsert verbs to disposal unit * Add gradual disposals movement * Fix being able to walk through space for a while after exiting disposals * Multiply disposals speed by 10 And fix early returns when moving an entity * Rename Disposable component to InDisposals * Remove DisposalNet and add on anchor events * Remove anchored events, moved to interfaces * Code cleanup * Fix adjacent tubes' connections when a tube connects * Fix jittery movement in disposals * Remove Logger.Debug call * Move disposals updates to InDisposalsComponent * Fix adjacent connection valid directions check * Disposal tubes now throw you out where they are facing * Add disposal unit exit cooldown * Set different disposal pipe sprite state depending on anchored value * Add recycler * Add recycler animation * Add bloody texture to the recycler when grinding a living being * Add PowerDevice component to the disposal unit * Made the Recycler center on the grid * Add disposal junction * Add picking a random direction if junction is entered from the output side * Add disposal flush and clang sounds Taken from VGStation * Move disposal flush and clang sound file names to exposedata * Add disposalsmap.yml to test with * Add summaries to DisposalUnit fields * Add sideDegrees yaml property to disposal junctions * Fix outdated usings * Add conveyor resources * Update RobustToolbox * More merge fixes Add conveyor collision masks * Add ConveyorComponent * Fix crash when reentering a body * Merge branch 'master' into disposals-1147 * Reduce recycler bounds, set hard to false, add summary and expose "safe" to yaml * Move IAnchored and IUnAnchored to AnchorableComponent * Update power components and remove old disposals map * Remove redundant sprite layers * Add tile pry command * Fix tilepry command * Fix DisposalJunctionComponent missing a component reference * Add anchor by radius command * Add Y-Junctions * Add disposal bend * Add unanchor command * Change DisposalJunction prototypes to specify their angles * Fix disposal units being hidden below the floor * Removed IAnhored and IUnAnchored interfaces * Replace CanBeNull annotation with nullable reference types * Update showwires command * Add recycler recycling items * Added angle and speed properties to ConveyorComponent * Fix conveyort textures * Add animation to the disposal unit * Fix anchor and unanchor commands sometimes not finding any entities * Fix not reading flush_time from disposal unit prototype * Fix merge conflict wrong using * Fix disposal, recycling and conveyor texture paths Delete diverters * Update visualizer names * Add DisposableComponent, change drag and drop to work with multiple components Ignoreinsideblocker client side for drag and drops, like on the server Add more comments * Add conveyor belts properly moving entities on top * Anchorr wires * Change conveyor bounds to 0.49 * Anchor catwalks, airlocks, gravity generators, low walls, wires and windows * Add starting/stopping conveyors * Add reversed conveyors * Add conveyor switches * Move InDisposalsComponent code to DisposableComponent * Add ExitVector method to tubes * Fix not updating tube references when disconnecting one * Replace IoCManager call with dependency * Add tubes disconnecting if they move too far apart from one another * Move disposals action blocking to shared * Add rotating and flipping pipes * Make conveyor intersection calculations approximate * Fix 1% chance of the server crashing when initializing the map Happens when emergency lockers remove themselves * Add disposal unit interface * Make disposal units refuse items if not powered * Make disposal tubes hide only when anchored * Make disposal junction arrows visible to mere mortals * Add disposal tubes breaking * Add tubeconnections command * Add missing verb attribute * Add flipped disposal junction * Add ids and linking to conveyors and switches * Add conveyor switch prying and placing * Add anchoring conveyor switches and refactor placing them * Add missing serializable attributes from DisposableComponentState * Make conveyor speed VV ReadWrite * Change drawdepth of conveyors to FloorObjects * Make conveyor anchored check consistent * Remove anchoring interaction from switches * Add conveyor switch id syncing and move switches slightly when pried * Make entities in containers not able to be moved by conveyors * Add conveyor and switches loose textures * Merge conflict fixes * Add disposal unit test * Add flushing test to disposal unit test * Add disposal unit flush fail test * Add disposals to the saltern map * Fix saltern disposal junctions * Add power checks to the recycler * Fix disposal unit placement in maintenance closet * Remove disposal junctions from saltern * Readd junctions to saltern * Add the chemmaster to saltern at the request of Ike * Move the chemistry disposal unit * Fix casing of disposal flush sound * More merge conflict fixes * Fix a compiler warning. * Remove popup invocation from buckle * Remove showPopup parameter from InteractionChecks * Remove unnecessary physics components Fixes the physics system dying * Replace PhysicsComponent usages with CollidableComponent * Update existing code for the new controller system * Change conveyors to use a VirtualController instead of teleporting the entity * Remove visualizer 2d suffix and update physics code * Transition code to new controller system * Fix shuttles not moving * Fix throwing * Fix guns * Change hands to use physics.Stop() and remove item fumble method * Add syncing conveyor switches states * Fix the recycler wanting to be a conveyor too hard * Fix showwires > showsubfloor rename in mapping command * Fix wifi air conveyors * Fix test error * Add showsubfloorforever command Changes drawdepth of the relevant entities * Disable opening the disposal unit interface while inside * Add closing the disposal unit interface when getting inside * Add closing the interface when the disposal unit component is removed * Add removing entities on disposal unit component removal * Delay disposal unit flush and fix serialization * Implement pressure in disposal units * Fix chain engaging a disposal unit * Implement states to the disposal unit * Fix missing imports from merge conflict * Update Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com> * Address some reviews * Fix za buildo * Use container helper to detach disposables * Make conveyors use the construction system * Make conveyor groups and syncing sane * Make flip flip brave * Add activate interface to conveyor switches * Fix not removing the switch from its group when it's deleted * Fix not registering conveyors and switches on initialize * Stop using 0 as null * Disconnect conveyors and switches when disposing of a group * Make disposal units not able to be exited when flushing * Make disposal units flush after a configurable 30 seconds * Add handle and light layers to the disposal unit * Merge engaging and flushing * Update saltern.yml * I love using 0 as null * Make disposal unit visual layers make sense * Remove duplicate remove method in disposal units and update light * Replace DisposableComponent with disposal holders * Fix disposal holders deleting their contents on deletion * Account for disposal unit pressure in tests and make a failed flush autoengage * Rename disposable to holder * Fix junction connections * Disable self insert and flush verbs when inside a disposal unit * Fix spamming the engage button making the animation reset * Make the recycler take materials into account properly Fix cablestack1 not existing * Merge conflict fixes * Fix pipes not being saved anchored * Change conveyors and groups to not use an id Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-07-30 23:45:28 +02:00
PreviousTube = null;
CurrentTube = null;
NextTube = null;
StartingTime = 0;
TimeLeft = 0;
foreach (var entity in _contents.ContainedEntities.ToArray())
{
Physics (#3485) * Content side new physics structure * BroadPhase outline done * But we need to fix WorldAABB * Fix static pvs AABB * Fix import * Rando fixes * B is for balloon * Change human mob hitbox to circle * Decent movement * Start adding friction to player controller I think it's the best way to go about it to keep other objects somewhat consistent for physics. * This baby can fit so many physics bugs in it. * Slight mob mover optimisations. * Player mover kinda works okay. * Beginnings of testbed * More testbed * Circlestack bed * Namespaces * BB fixes * Pull WorldAABB * Joint pulling * Semi-decent movement I guess. * Pulling better * Bullet controller + old movement * im too dumb for this shit * Use kinematic mob controller again It's probably for the best TBH * Stashed shitcode * Remove SlipController * In which movement code is entirely refactored * Singularity fix * Fix ApplyLinearImpulse * MoveRelay fix * Fix door collisions * Disable subfloor collisions Saves on broadphase a fair bit * Re-implement ClimbController * Zumzum's pressure * Laggy item throwing * Minor atmos change * Some caching * Optimise controllers * Optimise CollideWith to hell and back * Re-do throwing and tile friction * Landing too * Optimise controllers * Move CCVars and other stuff swept is beautiful * Cleanup a bunch of controllers * Fix shooting and high pressure movement controller * Flashing improvements * Stuff and things * Combat collisions * Combat mode collisions * Pulling distance joint again * Cleanup physics interfaces * More like scuffedularity * Shit's fucked * Haha tests go green * Bigmoneycrab * Fix dupe pulling * Zumzum's based fix * Don't run tile friction for non-predicted bodies * Experimental pulling improvement * Everything's a poly now * Optimise AI region debugging a bit Could still be better but should improve default performance a LOT * Mover no updater * Crazy kinematic body idea * Good collisions * KinematicController * Fix aghost * Throwing refactor * Pushing cleanup * Fix throwing and footstep sounds * Frametime in ICollideBehavior * Fix stuff * Actually fix weightlessness * Optimise collision behaviors a lot * Make open lockers still collide with walls * powwweeerrrrr * Merge master proper * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * Ch ch ch changesss * SHIP IT * Fix #if DEBUG * Fix vaulting and item locker collision * Fix throwing * Editing yaml by hand what can go wrong * on * Last yaml fixes * Okay now it's fixed * Linter Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com> Co-authored-by: Vera Aguilera Puerto <zddm@outlook.es>
2021-03-08 04:09:59 +11:00
if (entity.TryGetComponent(out IPhysBody? physics))
{
physics.CanCollide = true;
}
Add the trash man (#1367) * Add disposal.rsi * Rename disposal resource to disposal.rsi and create basic components * Add disposal nets * Add pushing entities along the disposal network * Add disposal unit * Unregister disposable component * Add flush and selfinsert verbs to disposal unit * Add gradual disposals movement * Fix being able to walk through space for a while after exiting disposals * Multiply disposals speed by 10 And fix early returns when moving an entity * Rename Disposable component to InDisposals * Remove DisposalNet and add on anchor events * Remove anchored events, moved to interfaces * Code cleanup * Fix adjacent tubes' connections when a tube connects * Fix jittery movement in disposals * Remove Logger.Debug call * Move disposals updates to InDisposalsComponent * Fix adjacent connection valid directions check * Disposal tubes now throw you out where they are facing * Add disposal unit exit cooldown * Set different disposal pipe sprite state depending on anchored value * Add recycler * Add recycler animation * Add bloody texture to the recycler when grinding a living being * Add PowerDevice component to the disposal unit * Made the Recycler center on the grid * Add disposal junction * Add picking a random direction if junction is entered from the output side * Add disposal flush and clang sounds Taken from VGStation * Move disposal flush and clang sound file names to exposedata * Add disposalsmap.yml to test with * Add summaries to DisposalUnit fields * Add sideDegrees yaml property to disposal junctions * Fix outdated usings * Add conveyor resources * Update RobustToolbox * More merge fixes Add conveyor collision masks * Add ConveyorComponent * Fix crash when reentering a body * Merge branch 'master' into disposals-1147 * Reduce recycler bounds, set hard to false, add summary and expose "safe" to yaml * Move IAnchored and IUnAnchored to AnchorableComponent * Update power components and remove old disposals map * Remove redundant sprite layers * Add tile pry command * Fix tilepry command * Fix DisposalJunctionComponent missing a component reference * Add anchor by radius command * Add Y-Junctions * Add disposal bend * Add unanchor command * Change DisposalJunction prototypes to specify their angles * Fix disposal units being hidden below the floor * Removed IAnhored and IUnAnchored interfaces * Replace CanBeNull annotation with nullable reference types * Update showwires command * Add recycler recycling items * Added angle and speed properties to ConveyorComponent * Fix conveyort textures * Add animation to the disposal unit * Fix anchor and unanchor commands sometimes not finding any entities * Fix not reading flush_time from disposal unit prototype * Fix merge conflict wrong using * Fix disposal, recycling and conveyor texture paths Delete diverters * Update visualizer names * Add DisposableComponent, change drag and drop to work with multiple components Ignoreinsideblocker client side for drag and drops, like on the server Add more comments * Add conveyor belts properly moving entities on top * Anchorr wires * Change conveyor bounds to 0.49 * Anchor catwalks, airlocks, gravity generators, low walls, wires and windows * Add starting/stopping conveyors * Add reversed conveyors * Add conveyor switches * Move InDisposalsComponent code to DisposableComponent * Add ExitVector method to tubes * Fix not updating tube references when disconnecting one * Replace IoCManager call with dependency * Add tubes disconnecting if they move too far apart from one another * Move disposals action blocking to shared * Add rotating and flipping pipes * Make conveyor intersection calculations approximate * Fix 1% chance of the server crashing when initializing the map Happens when emergency lockers remove themselves * Add disposal unit interface * Make disposal units refuse items if not powered * Make disposal tubes hide only when anchored * Make disposal junction arrows visible to mere mortals * Add disposal tubes breaking * Add tubeconnections command * Add missing verb attribute * Add flipped disposal junction * Add ids and linking to conveyors and switches * Add conveyor switch prying and placing * Add anchoring conveyor switches and refactor placing them * Add missing serializable attributes from DisposableComponentState * Make conveyor speed VV ReadWrite * Change drawdepth of conveyors to FloorObjects * Make conveyor anchored check consistent * Remove anchoring interaction from switches * Add conveyor switch id syncing and move switches slightly when pried * Make entities in containers not able to be moved by conveyors * Add conveyor and switches loose textures * Merge conflict fixes * Add disposal unit test * Add flushing test to disposal unit test * Add disposal unit flush fail test * Add disposals to the saltern map * Fix saltern disposal junctions * Add power checks to the recycler * Fix disposal unit placement in maintenance closet * Remove disposal junctions from saltern * Readd junctions to saltern * Add the chemmaster to saltern at the request of Ike * Move the chemistry disposal unit * Fix casing of disposal flush sound * More merge conflict fixes * Fix a compiler warning. * Remove popup invocation from buckle * Remove showPopup parameter from InteractionChecks * Remove unnecessary physics components Fixes the physics system dying * Replace PhysicsComponent usages with CollidableComponent * Update existing code for the new controller system * Change conveyors to use a VirtualController instead of teleporting the entity * Remove visualizer 2d suffix and update physics code * Transition code to new controller system * Fix shuttles not moving * Fix throwing * Fix guns * Change hands to use physics.Stop() and remove item fumble method * Add syncing conveyor switches states * Fix the recycler wanting to be a conveyor too hard * Fix showwires > showsubfloor rename in mapping command * Fix wifi air conveyors * Fix test error * Add showsubfloorforever command Changes drawdepth of the relevant entities * Disable opening the disposal unit interface while inside * Add closing the disposal unit interface when getting inside * Add closing the interface when the disposal unit component is removed * Add removing entities on disposal unit component removal * Delay disposal unit flush and fix serialization * Implement pressure in disposal units * Fix chain engaging a disposal unit * Implement states to the disposal unit * Fix missing imports from merge conflict * Update Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com> * Address some reviews * Fix za buildo * Use container helper to detach disposables * Make conveyors use the construction system * Make conveyor groups and syncing sane * Make flip flip brave * Add activate interface to conveyor switches * Fix not removing the switch from its group when it's deleted * Fix not registering conveyors and switches on initialize * Stop using 0 as null * Disconnect conveyors and switches when disposing of a group * Make disposal units not able to be exited when flushing * Make disposal units flush after a configurable 30 seconds * Add handle and light layers to the disposal unit * Merge engaging and flushing * Update saltern.yml * I love using 0 as null * Make disposal unit visual layers make sense * Remove duplicate remove method in disposal units and update light * Replace DisposableComponent with disposal holders * Fix disposal holders deleting their contents on deletion * Account for disposal unit pressure in tests and make a failed flush autoengage * Rename disposable to holder * Fix junction connections * Disable self insert and flush verbs when inside a disposal unit * Fix spamming the engage button making the animation reset * Make the recycler take materials into account properly Fix cablestack1 not existing * Merge conflict fixes * Fix pipes not being saved anchored * Change conveyors and groups to not use an id Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-07-30 23:45:28 +02:00
_contents.ForceRemove(entity);
if (entity.Transform.Parent == Owner.Transform)
{
entity.Transform.AttachParentToContainerOrGrid();
Add the trash man (#1367) * Add disposal.rsi * Rename disposal resource to disposal.rsi and create basic components * Add disposal nets * Add pushing entities along the disposal network * Add disposal unit * Unregister disposable component * Add flush and selfinsert verbs to disposal unit * Add gradual disposals movement * Fix being able to walk through space for a while after exiting disposals * Multiply disposals speed by 10 And fix early returns when moving an entity * Rename Disposable component to InDisposals * Remove DisposalNet and add on anchor events * Remove anchored events, moved to interfaces * Code cleanup * Fix adjacent tubes' connections when a tube connects * Fix jittery movement in disposals * Remove Logger.Debug call * Move disposals updates to InDisposalsComponent * Fix adjacent connection valid directions check * Disposal tubes now throw you out where they are facing * Add disposal unit exit cooldown * Set different disposal pipe sprite state depending on anchored value * Add recycler * Add recycler animation * Add bloody texture to the recycler when grinding a living being * Add PowerDevice component to the disposal unit * Made the Recycler center on the grid * Add disposal junction * Add picking a random direction if junction is entered from the output side * Add disposal flush and clang sounds Taken from VGStation * Move disposal flush and clang sound file names to exposedata * Add disposalsmap.yml to test with * Add summaries to DisposalUnit fields * Add sideDegrees yaml property to disposal junctions * Fix outdated usings * Add conveyor resources * Update RobustToolbox * More merge fixes Add conveyor collision masks * Add ConveyorComponent * Fix crash when reentering a body * Merge branch 'master' into disposals-1147 * Reduce recycler bounds, set hard to false, add summary and expose "safe" to yaml * Move IAnchored and IUnAnchored to AnchorableComponent * Update power components and remove old disposals map * Remove redundant sprite layers * Add tile pry command * Fix tilepry command * Fix DisposalJunctionComponent missing a component reference * Add anchor by radius command * Add Y-Junctions * Add disposal bend * Add unanchor command * Change DisposalJunction prototypes to specify their angles * Fix disposal units being hidden below the floor * Removed IAnhored and IUnAnchored interfaces * Replace CanBeNull annotation with nullable reference types * Update showwires command * Add recycler recycling items * Added angle and speed properties to ConveyorComponent * Fix conveyort textures * Add animation to the disposal unit * Fix anchor and unanchor commands sometimes not finding any entities * Fix not reading flush_time from disposal unit prototype * Fix merge conflict wrong using * Fix disposal, recycling and conveyor texture paths Delete diverters * Update visualizer names * Add DisposableComponent, change drag and drop to work with multiple components Ignoreinsideblocker client side for drag and drops, like on the server Add more comments * Add conveyor belts properly moving entities on top * Anchorr wires * Change conveyor bounds to 0.49 * Anchor catwalks, airlocks, gravity generators, low walls, wires and windows * Add starting/stopping conveyors * Add reversed conveyors * Add conveyor switches * Move InDisposalsComponent code to DisposableComponent * Add ExitVector method to tubes * Fix not updating tube references when disconnecting one * Replace IoCManager call with dependency * Add tubes disconnecting if they move too far apart from one another * Move disposals action blocking to shared * Add rotating and flipping pipes * Make conveyor intersection calculations approximate * Fix 1% chance of the server crashing when initializing the map Happens when emergency lockers remove themselves * Add disposal unit interface * Make disposal units refuse items if not powered * Make disposal tubes hide only when anchored * Make disposal junction arrows visible to mere mortals * Add disposal tubes breaking * Add tubeconnections command * Add missing verb attribute * Add flipped disposal junction * Add ids and linking to conveyors and switches * Add conveyor switch prying and placing * Add anchoring conveyor switches and refactor placing them * Add missing serializable attributes from DisposableComponentState * Make conveyor speed VV ReadWrite * Change drawdepth of conveyors to FloorObjects * Make conveyor anchored check consistent * Remove anchoring interaction from switches * Add conveyor switch id syncing and move switches slightly when pried * Make entities in containers not able to be moved by conveyors * Add conveyor and switches loose textures * Merge conflict fixes * Add disposal unit test * Add flushing test to disposal unit test * Add disposal unit flush fail test * Add disposals to the saltern map * Fix saltern disposal junctions * Add power checks to the recycler * Fix disposal unit placement in maintenance closet * Remove disposal junctions from saltern * Readd junctions to saltern * Add the chemmaster to saltern at the request of Ike * Move the chemistry disposal unit * Fix casing of disposal flush sound * More merge conflict fixes * Fix a compiler warning. * Remove popup invocation from buckle * Remove showPopup parameter from InteractionChecks * Remove unnecessary physics components Fixes the physics system dying * Replace PhysicsComponent usages with CollidableComponent * Update existing code for the new controller system * Change conveyors to use a VirtualController instead of teleporting the entity * Remove visualizer 2d suffix and update physics code * Transition code to new controller system * Fix shuttles not moving * Fix throwing * Fix guns * Change hands to use physics.Stop() and remove item fumble method * Add syncing conveyor switches states * Fix the recycler wanting to be a conveyor too hard * Fix showwires > showsubfloor rename in mapping command * Fix wifi air conveyors * Fix test error * Add showsubfloorforever command Changes drawdepth of the relevant entities * Disable opening the disposal unit interface while inside * Add closing the disposal unit interface when getting inside * Add closing the interface when the disposal unit component is removed * Add removing entities on disposal unit component removal * Delay disposal unit flush and fix serialization * Implement pressure in disposal units * Fix chain engaging a disposal unit * Implement states to the disposal unit * Fix missing imports from merge conflict * Update Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com> * Address some reviews * Fix za buildo * Use container helper to detach disposables * Make conveyors use the construction system * Make conveyor groups and syncing sane * Make flip flip brave * Add activate interface to conveyor switches * Fix not removing the switch from its group when it's deleted * Fix not registering conveyors and switches on initialize * Stop using 0 as null * Disconnect conveyors and switches when disposing of a group * Make disposal units not able to be exited when flushing * Make disposal units flush after a configurable 30 seconds * Add handle and light layers to the disposal unit * Merge engaging and flushing * Update saltern.yml * I love using 0 as null * Make disposal unit visual layers make sense * Remove duplicate remove method in disposal units and update light * Replace DisposableComponent with disposal holders * Fix disposal holders deleting their contents on deletion * Account for disposal unit pressure in tests and make a failed flush autoengage * Rename disposable to holder * Fix junction connections * Disable self insert and flush verbs when inside a disposal unit * Fix spamming the engage button making the animation reset * Make the recycler take materials into account properly Fix cablestack1 not existing * Merge conflict fixes * Fix pipes not being saved anchored * Change conveyors and groups to not use an id Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-07-30 23:45:28 +02:00
}
}
if (Owner.Transform.Coordinates.TryGetTileAtmosphere(out var tileAtmos) &&
tileAtmos.Air != null)
{
tileAtmos.AssumeAir(Air);
Air.Clear();
}
// FIXME: This is a workaround for https://github.com/space-wizards/RobustToolbox/issues/1646
Owner.SpawnTimer(TimeSpan.Zero, () => Owner.Delete());
_deletionRequested = true;
Add the trash man (#1367) * Add disposal.rsi * Rename disposal resource to disposal.rsi and create basic components * Add disposal nets * Add pushing entities along the disposal network * Add disposal unit * Unregister disposable component * Add flush and selfinsert verbs to disposal unit * Add gradual disposals movement * Fix being able to walk through space for a while after exiting disposals * Multiply disposals speed by 10 And fix early returns when moving an entity * Rename Disposable component to InDisposals * Remove DisposalNet and add on anchor events * Remove anchored events, moved to interfaces * Code cleanup * Fix adjacent tubes' connections when a tube connects * Fix jittery movement in disposals * Remove Logger.Debug call * Move disposals updates to InDisposalsComponent * Fix adjacent connection valid directions check * Disposal tubes now throw you out where they are facing * Add disposal unit exit cooldown * Set different disposal pipe sprite state depending on anchored value * Add recycler * Add recycler animation * Add bloody texture to the recycler when grinding a living being * Add PowerDevice component to the disposal unit * Made the Recycler center on the grid * Add disposal junction * Add picking a random direction if junction is entered from the output side * Add disposal flush and clang sounds Taken from VGStation * Move disposal flush and clang sound file names to exposedata * Add disposalsmap.yml to test with * Add summaries to DisposalUnit fields * Add sideDegrees yaml property to disposal junctions * Fix outdated usings * Add conveyor resources * Update RobustToolbox * More merge fixes Add conveyor collision masks * Add ConveyorComponent * Fix crash when reentering a body * Merge branch 'master' into disposals-1147 * Reduce recycler bounds, set hard to false, add summary and expose "safe" to yaml * Move IAnchored and IUnAnchored to AnchorableComponent * Update power components and remove old disposals map * Remove redundant sprite layers * Add tile pry command * Fix tilepry command * Fix DisposalJunctionComponent missing a component reference * Add anchor by radius command * Add Y-Junctions * Add disposal bend * Add unanchor command * Change DisposalJunction prototypes to specify their angles * Fix disposal units being hidden below the floor * Removed IAnhored and IUnAnchored interfaces * Replace CanBeNull annotation with nullable reference types * Update showwires command * Add recycler recycling items * Added angle and speed properties to ConveyorComponent * Fix conveyort textures * Add animation to the disposal unit * Fix anchor and unanchor commands sometimes not finding any entities * Fix not reading flush_time from disposal unit prototype * Fix merge conflict wrong using * Fix disposal, recycling and conveyor texture paths Delete diverters * Update visualizer names * Add DisposableComponent, change drag and drop to work with multiple components Ignoreinsideblocker client side for drag and drops, like on the server Add more comments * Add conveyor belts properly moving entities on top * Anchorr wires * Change conveyor bounds to 0.49 * Anchor catwalks, airlocks, gravity generators, low walls, wires and windows * Add starting/stopping conveyors * Add reversed conveyors * Add conveyor switches * Move InDisposalsComponent code to DisposableComponent * Add ExitVector method to tubes * Fix not updating tube references when disconnecting one * Replace IoCManager call with dependency * Add tubes disconnecting if they move too far apart from one another * Move disposals action blocking to shared * Add rotating and flipping pipes * Make conveyor intersection calculations approximate * Fix 1% chance of the server crashing when initializing the map Happens when emergency lockers remove themselves * Add disposal unit interface * Make disposal units refuse items if not powered * Make disposal tubes hide only when anchored * Make disposal junction arrows visible to mere mortals * Add disposal tubes breaking * Add tubeconnections command * Add missing verb attribute * Add flipped disposal junction * Add ids and linking to conveyors and switches * Add conveyor switch prying and placing * Add anchoring conveyor switches and refactor placing them * Add missing serializable attributes from DisposableComponentState * Make conveyor speed VV ReadWrite * Change drawdepth of conveyors to FloorObjects * Make conveyor anchored check consistent * Remove anchoring interaction from switches * Add conveyor switch id syncing and move switches slightly when pried * Make entities in containers not able to be moved by conveyors * Add conveyor and switches loose textures * Merge conflict fixes * Add disposal unit test * Add flushing test to disposal unit test * Add disposal unit flush fail test * Add disposals to the saltern map * Fix saltern disposal junctions * Add power checks to the recycler * Fix disposal unit placement in maintenance closet * Remove disposal junctions from saltern * Readd junctions to saltern * Add the chemmaster to saltern at the request of Ike * Move the chemistry disposal unit * Fix casing of disposal flush sound * More merge conflict fixes * Fix a compiler warning. * Remove popup invocation from buckle * Remove showPopup parameter from InteractionChecks * Remove unnecessary physics components Fixes the physics system dying * Replace PhysicsComponent usages with CollidableComponent * Update existing code for the new controller system * Change conveyors to use a VirtualController instead of teleporting the entity * Remove visualizer 2d suffix and update physics code * Transition code to new controller system * Fix shuttles not moving * Fix throwing * Fix guns * Change hands to use physics.Stop() and remove item fumble method * Add syncing conveyor switches states * Fix the recycler wanting to be a conveyor too hard * Fix showwires > showsubfloor rename in mapping command * Fix wifi air conveyors * Fix test error * Add showsubfloorforever command Changes drawdepth of the relevant entities * Disable opening the disposal unit interface while inside * Add closing the disposal unit interface when getting inside * Add closing the interface when the disposal unit component is removed * Add removing entities on disposal unit component removal * Delay disposal unit flush and fix serialization * Implement pressure in disposal units * Fix chain engaging a disposal unit * Implement states to the disposal unit * Fix missing imports from merge conflict * Update Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com> * Address some reviews * Fix za buildo * Use container helper to detach disposables * Make conveyors use the construction system * Make conveyor groups and syncing sane * Make flip flip brave * Add activate interface to conveyor switches * Fix not removing the switch from its group when it's deleted * Fix not registering conveyors and switches on initialize * Stop using 0 as null * Disconnect conveyors and switches when disposing of a group * Make disposal units not able to be exited when flushing * Make disposal units flush after a configurable 30 seconds * Add handle and light layers to the disposal unit * Merge engaging and flushing * Update saltern.yml * I love using 0 as null * Make disposal unit visual layers make sense * Remove duplicate remove method in disposal units and update light * Replace DisposableComponent with disposal holders * Fix disposal holders deleting their contents on deletion * Account for disposal unit pressure in tests and make a failed flush autoengage * Rename disposable to holder * Fix junction connections * Disable self insert and flush verbs when inside a disposal unit * Fix spamming the engage button making the animation reset * Make the recycler take materials into account properly Fix cablestack1 not existing * Merge conflict fixes * Fix pipes not being saved anchored * Change conveyors and groups to not use an id Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-07-30 23:45:28 +02:00
}
public void Update(float frameTime)
{
while (frameTime > 0)
{
var time = frameTime;
if (time > TimeLeft)
{
time = TimeLeft;
}
TimeLeft -= time;
frameTime -= time;
if (CurrentTube == null)
{
ExitDisposals();
break;
}
if (TimeLeft > 0)
{
var progress = 1 - TimeLeft / StartingTime;
var origin = CurrentTube.Owner.Transform.WorldPosition;
var destination = CurrentTube.NextDirection(this).ToVec();
var newPosition = destination * progress;
Owner.Transform.WorldPosition = origin + newPosition;
continue;
}
if (NextTube == null || !CurrentTube.TransferTo(this, NextTube))
{
CurrentTube.Remove(this);
break;
}
}
}
}
}