Commit Graph

347 Commits

Author SHA1 Message Date
Pieter-Jan Briers eb99b3c0fd
Merge pull request #792 from JiimBob/power-checks
Power checks
2020-03-30 17:43:33 +02:00
JiimBob 006d0685ac LatheComponent indentation fix
Corrected indentation for the switch case.
2020-03-25 19:58:59 -04:00
Pieter-Jan Briers 65d1681cb3
Fix error about game.diagonalmovement being registered multiple times. 2020-03-25 22:21:29 +01:00
JiimBob 5536ef2d2b Update CargoConsoleComponent.cs 2020-03-22 19:34:38 -04:00
JiimBob d645b1470e Added power checks
Added power checks to:
Reagent Dispenser
Medical Scanner
Lathes
Research Console
Vending Machines

Added power device component to:
chem dispenser prototype
medical scanner prototype

Fixes for #706
2020-03-21 15:37:22 -04:00
Decappi a1357a1ff3
#391 Done Lathe animations (#774)
* Draft PR, do not merge

* Lathe now uses animations. Timing is still wrong, code is very wet, repetitions and unused layers are there.

* Removed (unneeded?) PowerDeviceVisualizer from the lathe
Refactored & Renamed code and variables
Renamed animation names

* WIP protolathe animation

* Working protolathe animation.
I still don't like the solution though.
2020-03-15 17:55:20 +01:00
py01 aecff31262
Construction recipes can specify if they should be build-able in… (#781)
Co-authored-by: py01 <pyronetics01@gmail.com>
2020-03-06 20:15:44 +01:00
Víctor Aguilera Puerto e17ffbd76f
Adds verb categories (#766)
* Adds verb categories

* Update Content.Shared/GameObjects/Verbs/Verb.cs

Co-Authored-By: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Make GetCategory virtual

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-03-06 20:11:24 +01:00
py01 6c6ef3911d
InRangeUnobstructed check for construction start and step progre… (#773) 2020-03-03 17:03:58 +01:00
Víctor Aguilera Puerto d1ff84e95d
Add CanAttack to IActionBlocker, prevent using guns when dead (#769) 2020-03-03 15:10:09 +01:00
py01 5e2cac78ac
Fixes melee/hitscan raycast through airlocks (#777) 2020-03-03 15:09:07 +01:00
py01 6e4b72f6cb
Medical scanner eject collision fix (#767)
* MedicalScanner ejection location

* MedicalScanner bounding box change
2020-03-03 14:40:57 +01:00
py01 196950fb7e
Gun Code Modularization + Magazine Fed Shotgun (#751)
* Adds shotgun YAML files

* Adds shotgu ammo and magazine enum value, modularizes some projectile weapon methods

* Fixes guns consuming two bullets on fire

* Finishes shotgun behavior in Projectile Weapon Components

* Gun and ammo modularization

* Updates BallisticMagazineWeapons to be compatible with new AmmoWeapon

* Fixes shotgun spread angles, Fixes shogun YAML

* Gun documentation and ViewVariable specifications

* Removes todo messsage in gun code

* Default gun evenspread fix

* AmmoComponent Name fix

* Fixes Component name

* Projectile refactor code review fixes
2020-02-29 18:09:41 +01:00
Víctor Aguilera Puerto 60d6b4af7d
You can now pickup items inside obstructions (#759) 2020-02-28 17:52:18 +01:00
Acruid 3011c06460 You can now pick up items that are not on a grid.
API changes for IMapManager.TryGetGridAt().
2020-02-27 02:12:57 -08:00
Leo a99919538c
Fix vending machine eject animation being played twice (#749) 2020-02-27 04:30:58 +01:00
Pieter-Jan Briers 37df6e6a11
Update submodule and fix race condition in wire component init 2020-02-27 00:16:39 +01:00
Pieter-Jan Briers cad06813a8
Notify message on changing state of InjectorComponent 2020-02-24 17:40:24 +01:00
Injazz 15fa417a4f
Explosion now throws affected entities, fixes probability/severi… (#732)
* throwforce and probability fixes for explosions

Applies force to all affected by explosion entities with ItemComponent
Fixes probability issues with explosion related callbacks

* dependency fix, throw helper

* delete TODO

Co-authored-by: gituhabu <48828502+gituhabu@users.noreply.github.com>
2020-02-24 03:52:15 +01:00
Pieter-Jan Briers 8a5e879633
Glass airlocks actually let light through. 2020-02-24 01:55:44 +01:00
moneyl 1b7860aeda
Add injectors + injected reagent metabolism via BloodstreamCompo… (#730)
* Add BloodstreamComponent and BloodstreamSystem

New component for metabolizing reagents that other organs like the stomach pass their input reagents to.

* Change StomachComponent to put ingested reagents in bloodstream after delay

Now StomachComponent does not metabolize any reagents. Instead, it tracks how long each reagent has been inside it, and once they pass "digestionDelay" they'll be put inside the bloodstream, where the bloodstream will handle metabolism of the reagent.

* Add reagent injectors

Injects reagents straight into the bloodstream when used on mobs with bloodstreams. Also allows draw/inject from beakers. Does not support drawing blood/reagents from the bloodstream yet.

* Address code review

Make use of `Loc` static class instead of using `ILocalizationManager`. Localize InjectorToggleMode enum properly.
2020-02-24 01:47:33 +01:00
Pieter-Jan Briers d8291ed9c4
Shadow & FOV stuff (#735)
* Content fixes for shadow/occluder stuff.

* Observers don't have FOV.

* Update submodule
2020-02-23 17:30:45 +01:00
ShadowCommander a3e61a77db
Implement StorageFillComponent (#726) 2020-02-23 00:40:09 +01:00
py01 ad4dd335b8
Sound for burning your hand on a powered light (#733) 2020-02-23 00:39:00 +01:00
4dplanner b0e3ab3393
MovementSpeedModifierComponent (#721)
* movement modifier system

* update default exposedata values

* changing base speed marks as dirty

* formatting

* movement speed modifier component

* Moves slowdown component to the prototype

AIController respects slowdown

* reset dirty flag
2020-02-23 00:37:56 +01:00
Víctor Aguilera Puerto 4f397e1ce2
Fix warnings (#723) 2020-02-23 00:28:50 +01:00
Acruid ee6eec9c40 SubscribeEvent() has been split into SubscribeNetworkEvent() and SubscribeLocalEvent() methods on EntitySystem.
Most methods on EntityEventBus now require callers to specify the source (Local or Network) of the events.
2020-02-19 17:08:59 -08:00
micheel665 987a39c25e
Added a button to add entities to storage items (#709) 2020-02-17 00:19:35 +01:00
py01 b2b8021d9b
Adds rsi sprites for bureaucracy items, fixes pen and paper spri… (#711) 2020-02-17 00:16:06 +01:00
Víctor Aguilera Puerto 70c41f63b0
Adds InRangeUnobstructed method to InteractionSystem (#698)
* You cannot pickup items across walls, or pickup items when dead/in crit.

* Adds InRangeUnobstructed method to InteractionSystem.
Changes HandsSystem and ItemComponent to use it.
2020-02-16 23:04:06 +01:00
Profane McBane 9e368b336f
Let stacks specify if they get thrown as one item, or individual… (#679) 2020-02-13 23:43:02 +01:00
Víctor Aguilera Puerto 934f6fb7e2
Add OnDamaged method to IOnDamageBehavior (#685)
* Add OnDamaged method to IOnDamageBehavior

* Adds Source, SourceMob to OnDamage.
2020-02-13 15:57:40 +01:00
Daniel Thompson b4b0f6e04b
Adds config options for diagonal movement (#684)
* Adds config options for diagonal movement

* Addresses comment
2020-02-13 15:10:09 +01:00
adrian 9544099c99
Paper and pen (#582)
* A very basic paper and pen implementation

* Removes SharedWriteComponent

* Update ContentNetIDs.cs
2020-02-12 00:01:05 +01:00
adrian 253972d529 Fixes placing objects on closed lockers (#658) 2020-02-09 10:42:12 +01:00
Profane McBane c7043d20b1
Fixes melee combat (#655) 2020-02-08 20:46:45 +01:00
Pieter-Jan Briers 6d9f2b5a68
Fix attack sounds playing globally. 2020-02-08 18:26:01 +01:00
ShadowCommander d1c5cf9607
Fix TemperatureComponent (#620)
* Remove TEMPERATURE Net ID

* Remove Temperature NetID
2020-02-08 11:29:06 +01:00
ShadowCommander 4515b5a0af Fix wires getting placed when picking up a wire coil (#628) 2020-02-08 11:27:18 +01:00
Profane McBane fec20133d9
disable collisions between mobs (#625) 2020-02-07 15:15:06 -08:00
ShadowCommander cf78f8aa65
Drink fixes (#605)
* Fix max_volume in cup YAML

Fixes #563

Added parsing of max_volume from YAML. Before it would get max volume only from drink content total.

* Fix drink owner getting deleted early

_contents.SplitSolution causes _contents.SolutionChanged to call Finish early causing a crash when try to get SoundComponent from the deleted Entity.
2020-02-07 18:13:11 +01:00
Tad Hardesty 34bbca5cc2
Fix powernets detecting APCs on other maps (#604) 2020-02-07 17:55:27 +01:00
Víctor Aguilera Puerto 6bd818c8ce
Fix two crashes relating to food (#600)
* Fix crash when eating bread due to a missing prototype

* Fix crash when finishing a food.

It tried to get the transform component of a deleted entity.
2020-02-06 16:40:41 +01:00
moneyl 6a1d2124df
Revert unnecessary changes made by previous PR to SolutionCompon… (#583)
#574 added an out arg to `SolutionComponent.TryRemoveSolution` containing the solution that was removed. I made this change since I thought there was no way to get the removed solution for further use. Didn't notice `SplitSolution` which provides nearly the same behavior. With this PR I want to remove that out arg from `TryRemoveSolution` to keep the SolutionComponent API simple and to avoid having multiple ways of doing things. Existing code uses `SplitSolution`, I just wasn't paying attention.

Feel free to deny merging this if I'm over thinking it. I think it'll help keep solution code from becoming a mess.
2020-02-06 16:13:32 +01:00
Tyler Young ef751f68dc
Faster Power (#596)
uses SnapGridComponent to select nearby wires instead of entity list (only marginally faster if entity queries are using DynamicTree)

TheoreticalLoad double dipping property setter, reduced to one update

minor refactoring

Co-authored-by: Tyler Young <tyler.young@impromptu.ninja>
2020-02-06 14:50:52 +01:00
Tyler Young fcccae5df0
Replaces constructors of Ray with CollisionRay (#594)
Companion of https://github.com/space-wizards/RobustToolbox/pull/951
2020-02-06 14:17:37 +01:00
moneyl 493b80095d
Chem dispenser attempts to eject into hands (#576)
Previously the chem dispenser eject button placed the container on top of the dispenser. Now it will attempt to place it in your active hand, then your secondary hand. If both hands are full then it'll place it on top of the dispenser like before.
2020-01-29 19:15:35 +01:00
moneyl 972d601664
Add solution pouring / click-transfer (#574)
* Add click-based solution transfer

For example, clicking on a beaker with a soda can to transfer the soda to the beaker. Works on plain solution containers like beakers and also on open drink containers like soda cans as long as they have the `PourIn` and `PourOut` solution  capabilities. If no `SolutionComponent` is added to a drink entity, the `DrinkComponent` will give the entity one. This PR extends that behavior slightly by also giving these default `SolutionComponent`'s the proper capabilities for pouring in/out.

* Improve fix for poured drinks not immediately disappearing

Instead of making `DrinkComponent.Use` public this 
 splits out the code important to both users and made that function public, leaving `Use` private.

* Shorten solution transfer popup

* Make code review changes

- Move pouring code from SolutionComponent to new PourableComponent. Added PourableComponent to client ignore list and added to existing container prototypes.
- Added EmptyVolume property to shared SolutionComponent for convenience.
- Removed DrinkComponent fix from pouring AttackBy code. Instead DrinkComponent subscribes to the SolutionChanged action and updates its self when necessary.
- Fixed pouring being able to add more than a containers max volume and sometimes deleting reagents.
- Added message for when a container is full.

* More code review changes

- Remove IAttackBy ComponentReference attribute in PourableComponent
- Remove _transferAmount from shared SolutionComponent. Left over var from previous commit not being used anymore.
2020-01-29 02:07:02 +01:00
Pieter-Jan Briers 883c465a14
Fix crash on human deletion.
Fixes #568
2020-01-26 19:52:09 +01:00
ShadowCommander b71f39cfb4 Fix PickUp verb showing up for entities in containers (#567) 2020-01-26 14:00:59 +01:00