Commit Graph

9666 Commits

Author SHA1 Message Date
Pieter-Jan Briers 93ebd95f8a
Fix async issues with SpawnPlayer.
Fixes #1705
2020-08-16 02:22:10 +02:00
Pieter-Jan Briers 05cf8303e4
Make use of new WritableDirProvider APIs to improve file sharing and simplify code. 2020-08-16 01:12:30 +02:00
Víctor Aguilera Puerto a7fc2bccbd
Fixes explosive depressurization and improves high pressure movements (#1683) 2020-08-15 22:43:55 +02:00
Víctor Aguilera Puerto 33baa73f06 Debug verbs aren't blocked by containers anymore. 2020-08-15 20:42:39 +02:00
DrSmugleaf add4986001
Fix being able to do most verbs from within a container (#1613)
* Fix being able to do most verbs from within a container

* Fix missing container check when using global verbs
2020-08-15 20:38:37 +02:00
Exp f37d6343ce
Reset velocity after warp (#1680)
* Reset velocity after warp

* Rather than looping through the controllers manually, just call collidable.stop
2020-08-15 20:35:02 +02:00
Víctor Aguilera Puerto c3df108b27
Stripping (#1668)
* Start work on stripping.

* more strippable work

* Stripping works

* Nullable

* MORE NULLABLE

* nullable moment

* life is pain

* Interaction check.

* Update Content.Client/GameObjects/Components/HUD/Inventory/StrippableBoundUserInterface.cs

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Update Content.Client/GameObjects/Components/HUD/Inventory/StrippableBoundUserInterface.cs

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Update Content.Server/GameObjects/Components/GUI/HandsComponent.cs

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Update Content.Server/GameObjects/Components/GUI/HandsComponent.cs

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Update Content.Server/GameObjects/Components/GUI/HandsComponent.cs

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Update Content.Server/GameObjects/Components/GUI/StrippableComponent.cs

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Update Content.Server/GameObjects/Components/GUI/StrippableComponent.cs

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Update Content.Server/GameObjects/Components/GUI/HandsComponent.cs

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Update Content.Server/GameObjects/Components/GUI/StrippableComponent.cs

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Update Content.Server/GameObjects/Components/GUI/StrippableComponent.cs

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Update Content.Shared/GameObjects/Components/GUI/SharedStrippableComponent.cs

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Update Content.Server/GameObjects/Components/GUI/StrippableComponent.cs

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Rename InventoryComponent and HandsComponent's OnChanged event to OnItemChanged

* Apply suggestions from code review

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Use static EquipmentSlotDefines

* Do not expose ContainerSlot on Inventory or Hands.

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2020-08-15 20:33:42 +02:00
Víctor Aguilera Puerto e047262289 Fix TileAtmosInfo pressure direction being east when created. 2020-08-15 17:16:55 +02:00
Víctor Aguilera Puerto 67fbdb96b3 Fix deconstructing walls creating an atmos void.
This caused a lot of high pressure movements.
2020-08-15 16:51:57 +02:00
Víctor Aguilera Puerto 898e278266 Fix some atmos tiles not being added correctly. 2020-08-15 16:20:31 +02:00
ShadowCommander 915631d51c
Refactor collision to use hard instead of a workaround (#1677) 2020-08-15 16:07:09 +02:00
Víctor Aguilera Puerto f791719e31 Add damage cooldown to DamageOnHighSpeedImpactComponent. 2020-08-15 03:38:34 +02:00
Víctor Aguilera Puerto ae1f55656e Fix pressure difference direction being incorrect. 2020-08-15 03:23:57 +02:00
Víctor Aguilera Puerto fd40c5157b Pressure movements won't affect entities in containers. Use GetCardinalDirection. 2020-08-15 03:20:25 +02:00
Víctor Aguilera Puerto b2709733a5 Revert "Welders now use EntityQuery to update instead of subscriptions."
This reverts commit a815b50f6d and fixes the issue properly.
2020-08-15 00:12:30 +02:00
Víctor Aguilera Puerto a815b50f6d Welders now use EntityQuery to update instead of subscriptions. 2020-08-15 00:02:17 +02:00
Víctor Aguilera Puerto 2dc4bbd604 Fix welder updating when deleted 2020-08-14 23:54:50 +02:00
Víctor Aguilera Puerto 7cd32fe587 Fix sandbox panel "ghost" button oversight.
Now defaults to ghost if you don't have aghost perms.
2020-08-14 21:55:39 +02:00
Swept 541ba64c80
More sandbox buttons for fun and pleasure (#1599)
* Aghost Button

* Toggle Lights Button (Shitcode)

* Suicide Button

* Toggle Subfloor Button

* Changed the X icon for windows to be slimmer

* ToggleLights and ToggleSubfloor are no longer shitcode!

* Refactors SandboxWindows.cs

* Added Shows Spawns Button

* Fix

* Show Bounding Boxes Button

* I guess this helps somewhat?

* Nested SandboxWindow.cs inside of SandboxManager.cs for simplicity

* Fixes

* I forgot what I added

* Removed CSI console... for now

* Fix build

Co-authored-by: Víctor Aguilera Puerto <zddm@outlook.es>
2020-08-14 18:09:58 +02:00
Víctor Aguilera Puerto 4ebd7e0dbc Welder now exposes temperature to hotspot every update. 2020-08-14 18:03:52 +02:00
Víctor Aguilera Puerto 8f1a74dcd1 Fix integration tests failing. 2020-08-14 16:10:19 +02:00
ancientpower 9ffc134f75
Fixes overlays not clearing when using the ghost command (#1669)
* fixes overlays not clearing when ghosting

* fix gonflicts???

* actually fixes gonflicts

Co-authored-by: ancientpower <ancientpowerer@gmail.com>
2020-08-14 15:13:32 +02:00
Víctor Aguilera Puerto 0d4ae469e3 Optimizes EqualizePressureInZone to use ArrayPool 2020-08-14 13:17:27 +02:00
metalgearsloth 5962280d36
Station events (#1518)
* Station event system

Adds 2 basic events: (Power) GridCheck and RadiationStorm (based on the goonstation version).
The system itself to choose events is based on tgstation's implementation.
This also adds the event command that can be run to force specific events.

There's still some other TODO items for these to be complete, to my knowledge:
1. There's no worldspace DrawCircle method (though the radstorm could look a lot nicer with a shader).
2. The PlayGlobal power_off / power_on audio seems to cut out halfway-through
3. (I think this is a known issue) lights still emit light until you get closer in a gridcheck so PVS range might need bumping.

* Invariants for event names

* Fix random event shutdown

* Mix stereo announcements to mono

* Address feedback

* Remove redundant client system and use the overlay component instead
* Drop the server prefix

* Fix radiation overlay enum

* use entityquery instead

* zum's feedback

* Use EntityQuery

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-08-13 22:52:17 +02:00
juliangiebel 781faae98a Set interaction priority of PlacableSurfaceComponent to 1 2020-08-13 20:14:07 +02:00
ike709 83a7dfebef
Improves the RCD (#1609)
* Improves the RCD

* oops

* Unnecessary

* Merge 2 checks

* RCD whitelist and reorganization

* Makes the RCD great again

* Ignored components

* loicense

* Fix missing using
2020-08-13 19:39:23 +02:00
DrSmugleaf 4a8ed41e3a
Fix namespaces and optimize imports (#1651)
* Fix namespaces and optimize imports

* Cleanup fixes

* Merge conflict fixes

* Merge conflict fixes

* Merge conflict fixes
2020-08-13 14:40:27 +02:00
metalgearsloth 05a76d55f7
Vending machine uplift (#1549)
* Let there be (vending machine) light

Cut up vending machines to have unshaded layers.
I scripted the cutting up so there might need to be minor tweaks to some of them.
Added the eris vending machine sound (I liked it more than tg's, fight me).

* Tweak sound reduction

* Mark vending as abstract

Appearance is done on each vending based on what sprite states they have (at the moment) and the vendingmachine shouldn't be spawned on its own anyway.

* Add screen layer back in

* Unstuff what was stuffed

* Removed the Soviet and USA vending machines

* Added proper licensing

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: Swept <jamesurquhartwebb@gmail.com>
2020-08-13 14:39:23 +02:00
Víctor Aguilera Puerto ca68fbe818
Add heat conduction (#1653) 2020-08-13 14:18:26 +02:00
metalgearsloth 619386a04a
Server EntitySystem cleanup (#1617)
* Server EntitySystem cleanup

I went after low-hanging fruit systems.

* Add / change to internal access modifiers to systems
* Use EntityQuery to get components instead
* Add sealed modifier to systems
* Remove unused imports
* Add jetbrains annotation for unused classes
* Removed some pragmas for dependencies

This should also fix a decent chunk of the server build warnings, at least the ones that matter.

* Also disposals

* Update Content.Server/GameObjects/EntitySystems/GravitySystem.cs

* Fix build

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
2020-08-13 14:17:12 +02:00
DrSmugleaf fee5ae05bc
Add more atmos helpers (#1661) 2020-08-13 13:51:57 +02:00
juliangiebel 3b894c7de4 Add higher interaction priority to 2020-08-12 23:41:09 +02:00
juliangiebel ba058ccbdd Add priority sorting to `InteractUsing` 2020-08-12 23:01:30 +02:00
Pieter-Jan Briers e76003948b
Remove this parameter from FloatMath.Clamp.
That was a stupid idea.
2020-08-12 21:19:34 +02:00
Pieter-Jan Briers f182ff5613
Remove CannyFastMath. 2020-08-12 21:19:34 +02:00
Víctor Aguilera Puerto 1fc941b3b3 Removes CannyFastMath usage from Atmos. 2020-08-12 19:37:07 +02:00
Acruid cdc6ec3bfc Ranged weapon firing does not depend on DefaultGrid anymore. 2020-08-11 16:44:15 -07:00
Víctor Aguilera Puerto 32e4c24342 Adds atmos helpers, welding tool now lights up fires 2020-08-11 22:34:37 +02:00
metalgearsloth b34bd7c188
AI preset curves and expandable optimisation (#1346)
* AI preset curves and expandable optimisation

Added preset curves for considerations to use just to avoid repeating the same variables all over the shop.

Moved common considerations for expanded actions onto the expandable action e.g. you need a free hand to be able to PickUpGloves so we'll just check it the once rather than for each action.

* FIX PRAGMA

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-08-11 22:01:55 +02:00
Julian Giebel c00a08f504
Add disposal-charging state to disposal rsi (#1649)
Add charging state to UpdateVisualState in Content.Server/DisposalUnitComponent
2020-08-11 17:52:37 +02:00
Víctor Aguilera Puerto 2c9ca2f44d Removes AssumeAir from IGasMixtureHolder interface. 2020-08-11 17:42:16 +02:00
ShadowCommander 0d29b15ae0
Fix StackComponent not getting removed from containers when empty (#1645) 2020-08-11 17:38:00 +02:00
metalgearsloth 452a67032f
Fix the pathfinding leak (#1647)
Off-grid entities were continually expanding the graph indefinitely which is... bad.

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-08-11 17:36:40 +02:00
DrSmugleaf 5388bf0738
Add command to add underplating to all walls on a grid (#1644) 2020-08-11 03:13:41 +02:00
Exp c562a8db03
Gas Analyzer Improvement (#1631)
* -Click on the analyzer to get the gas at your pos, click on tile to get gas tehre
-Reduced the auto refresh time
-AutoRefresh ui

* Use a fixed position instead of a offset

* Review
2020-08-10 16:32:29 +02:00
Exp aaffd7e198
Chem Master & Dispenser Power Fixes (#1622)
* -ChemDispenser & Master can now open the UI without power
-Both can also eject beaker without power

* -Disables button if not powered
-Disables clear & eject buttons if no beaker

* Fix server freeze
2020-08-10 16:30:56 +02:00
Exp 9785a8e647
Add RadiatingLight to Server IgnoredComponents (#1636) 2020-08-10 16:21:55 +02:00
Víctor Aguilera Puerto a96b13f8c7 Fix clearatmos command not working as intended. 2020-08-10 16:21:25 +02:00
Víctor Aguilera Puerto ec75baeede Disables the AI Pathfinding system for the time being. 2020-08-10 03:33:05 +02:00
Víctor Aguilera Puerto 6a06358012 Minor atmos optimization 2020-08-10 02:53:55 +02:00
Qustinnus 81e2dde7f5
Fixes recoil and adjusts values (#1573) 2020-08-09 20:56:02 +02:00
Exp d4f406337e
Fix Slipping not calling Dropped (#1632) 2020-08-09 20:52:52 +02:00
Víctor Aguilera Puerto 7293d985a5
Unique gas serialization for atmos (#1629)
* Add unique gas mixture serialization for atmos

* Refactor doAfterEventArgs

* Adds atmos commands

* Roundstard now has correct ratio of gases

* Fixed hashcode for gasmixture, better grid atmos serialization

* Airlocks create gas based on adjacent tiles now.

* Enables barotrauma component damage
2020-08-09 16:52:59 +02:00
Víctor Aguilera Puerto 0c419cc448 Proper DoAfterEventArgs refactor 2020-08-09 02:04:15 +02:00
Víctor Aguilera Puerto a57883e363 Refactor doAfterEventArgs 2020-08-09 01:44:44 +02:00
Víctor Aguilera Puerto 30d78938fd Fix atmos bug 2020-08-08 20:11:47 +02:00
Víctor Aguilera Puerto 6963bb86cf Fix typo 2020-08-08 19:45:38 +02:00
Víctor Aguilera Puerto bb08367700 Fix tritium fires looking weird. 2020-08-08 19:44:56 +02:00
Víctor Aguilera Puerto b5a976b173
Adds tritium fire reaction and water vapor, fix gas reactions (#1623)
hehe Tritfire go BRRRR
2020-08-08 19:16:24 +02:00
Exp cc9f16e738
Adds Gas Analyzer (#1591)
* -Started Gas Analyzer
-TemperatureHelpers

* Formatting

* Adds PopupTooltip to NotifyManager

* Revert Tooltip fuckery

* Gas Analyzer gives proper error messages

* Localization

* Added a very wip gas analyzer ui

* UI works, doesn't look good but hey

* Safety checks

* Fancy WIP gas mix bar

* Gas Color

* Gas Amount shows only 2 decimal places

* -Made bar full width
-Moved gas list into a table
-Some gas bar things

* IDropped something

* Description

* -Percentage
-Padding

* ItemStatus

* -Proper Danger Warnings
-Added Warning danger state

* Pressure unit

Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
2020-08-08 18:24:41 +02:00
metalgearsloth 5b3b2e3207
do_after (#1616)
* do_after

Ports (most of) do_after from SS13.
Callers are expected to await the DoAfter task from the DoAfterSystem.
I had a dummy component for in-game testing which I removed for the PR so nothing in game uses do_after at the moment.
Currently only the movement cancellation is predicted client-side.

* Minor do_after doc cleanup

* do_the_shuffle

Fix nullable build errors.

* The last nullable

* Implement NeedHand

Thanks zum.

* nullable dereference

* Adjust the system query

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-08-08 18:16:13 +02:00
DrSmugleaf ee14d67756
Make devastation the only explosion type that removes tiles entirely (#1612)
* Make light and heavy explosions not destroy tiles to space

* Change welding fuel tank and grenade explosion values
2020-08-08 18:14:22 +02:00
Víctor Aguilera Puerto 9681907006 Fix bug where atmos could get stuck processing certain states for a long time 2020-08-08 16:55:36 +02:00
py01 7f0ab2e03b
Removes obsolete PhysicsComponent from power prototypes (#1542)
* Removes obsolete PhysicsComponent from wire and power prototypes

* Updates anchorable to use CollidableCOmponent

* Map update

* map update again

* Fixes generators starting unanchored

Co-authored-by: py01 <pyronetics01@gmail.com>
2020-08-08 14:41:12 +02:00
Exp b4f08811eb
Adds Spray Bottles (#1522)
* Spray Bottle

* -"Proper" wall detection
-Removed some using
-Fixed sound

* Just don't add it

* -Removed spill sound
-Added sound parameter to SpillHelper.SpillAt

* Now spawns Vapor instead of Puddles instantly

* -Review
-Nullable

* Reworkkkk

* AABB shittery

Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
2020-08-08 14:33:36 +02:00
metalgearsloth 322c2261b6
Conveyors now tickrate agnostic (#1618)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-08-08 12:34:28 +02:00
DrSmugleaf 228702c9e1
Fix ghosts being able to play instruments to themselves (#1611) 2020-08-07 22:30:48 +02:00
Víctor Aguilera Puerto ffc9a24ea0
Adds barotrauma (pressure damage) (#1605)
* Adds barotrauma, disables it for now

* At least show status effect, but don't damage the mobs

* Fix switch misuse
2020-08-07 16:23:16 +02:00
Víctor Aguilera Puerto 079937a9fe
Wall slams - Damage on high velocity impact. (#1600)
* Wallslammed!

* Removes debug logging

* Buff damage to 5 by default
2020-08-07 16:22:32 +02:00
py01 01b10cb687
Node serialization change (#1497)
* NodeContainerComponent serializes a set of Nodes with ExposeData

* Fixes Nodes to work when being created by serializer

* ConduitNode

* ConduitPlacer to replace WirePlacer

* ConduitNode ConduitLayer setter

* Map update

* Comments

* Map update again

* Method ordering by privacy

* Removes conduits

* ignored component

* reorg

* map update

* readd wireplacer

Co-authored-by: py01 <pyronetics01@gmail.com>
2020-08-07 02:47:54 +02:00
Víctor Aguilera Puerto 551c204a9f Fix GetGridAtmosphere crash 2020-08-07 02:33:08 +02:00
Víctor Aguilera Puerto aa0c8c067e Fix fillgas too, make both case insensitive 2020-08-06 15:41:17 +02:00
Víctor Aguilera Puerto d2d103fdd0 Fix addgas bug where you couldn't input the gas name instead of the Id 2020-08-06 15:37:39 +02:00
Víctor Aguilera Puerto b7c595ef36 Fix crime against humanity 2020-08-06 15:28:37 +02:00
metalgearsloth 140f8f7647
AI reachable improvements (#1595)
Deleted regions in some instances were being retained indefinitely.

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-08-05 16:19:00 +02:00
Víctor Aguilera Puerto c5d3bff266 Fix server crash 2020-08-04 16:11:41 +02:00
Víctor Aguilera Puerto 4546fffe70 Use IGridAtmosphereComponent interface in AtmosphereSystem 2020-08-04 15:42:24 +02:00
Víctor Aguilera Puerto a8fcaf9bb3 Trying to set temperature below TCMB sets it to TCMB. 2020-08-02 20:38:10 +02:00
Víctor Aguilera Puerto 082a5945e3 Fix missing null conditional 2020-08-02 20:19:01 +02:00
Víctor Aguilera Puerto c52d5a65f8 Fix command typo 2020-08-02 20:14:28 +02:00
Víctor Aguilera Puerto 85df48a700
Adds atmos (#1389)
* Add initial atmospherics framework

* Make walls and airlocks airtight

* Add the basic atmosphere gas system

* Atmos: move CardinalToIntVec and Offset into extention methods in EntityNetworkUtils

* Optimize vending machine code a bit.

* Address feedback from Atmos PR, make code compile

Fix use of OnMove -> SnapGridComponent.OnPositionChanged.
Added pause checking to atmos simulations.

* Improvements to the existing ZAS prototype (#996)

* Rename Volume -> Quantity in GasProperty

This makes the name consistent with the rest of the code, given that
it's meant to be a mol value.

* Replace Gas enum with GasPrototype

Unused as of yet, but laying the groundwork for future changes.

* Update AtmosphereMap, improving maths

Adds a temporary default atmosphere, hardcoded in for testing. It will
be replaced eventually.

Fixed a maths mistake in the original code involving unit conversions.

Added the Take() method to IAtmosphere, for taking some volume of
mixture out of a gas mix. This will be pretty handy in the future, but
for now it's used by walls to delete air where they are built.

* Fix merging, splitting logic for zones

Removing a cell from a zone now correctly reduces its volume.
Adding a cell to a zone now correctly increases its volume.

* Improvements to atmos code, reorganising of types

Moved GasPrototype to shared, because it's going to be used by the
client later.

Split up the atmosphere code. Now zones are explicitly their own kind of
atmosphere, which should speed up some loops and also solve
inconsistencies in the volume calculation.
GasMixtures are another type of atmosphere, for more general use.

Try to fix the splitting/merging code, which was quite cryptic and not
clear at all. It *should* work now.

* Switch zones back to MapIndices

Turns out I'm an idiot who misunderstood the code. MapIndices can be
used as one-per-tile, which is what is needed for atmos. GridCoordinates
are many-per-tile, and were causing lots of problems.

* Add zone debugging overlay

This is the first example of zone information being sent to a client.

It adds the `togglezoneinfo` command, which overlays the tiles and gas
information for the zone currently occupied by the user on the screen.
This was helpful for debugging the GridCoordinates problem.

* Fix position of atmos zone debug text

* Make AirtightComponent only activate on MapInit

This should stop it splitting atmospheres in mapping.

* Doc comments improvements to AtmosphereMap

Fix some malformed comments, inherit some useful docs, document some
more functions.

* Add zone logic for changing tiles to/from space

Zones are now correctly created when all the tiles in a room are built,
and destroyed when one of the tiles is destroyed.

* update engine

* right

* Cleanup code

* Port GasMixture, further cleanup

* Fix windows not being airtight, some other stuff

* Work on atmos

* Difference between ZoneBlocked and AirBlocked

* Big GridAtmosphereManager cleanup, zones are broken now oops

* Remove zones, add excited group implementation

* Further cleanup

* Further work on atmos

* Work on gas overlay.

* PumpGasTo and ReleaseGasTo methods for GasMixture.

* Adds Tile Overlay System.

* More work on atmos

* Gasses spread, equalize and all that

* Fix a few crashes

* Gas can actually spread from room to room after opening airlocks

* Add explosive depressurization, tile prying on depressurization, gas spreading on wall break. Etc.

* More work

* Remove atmoschem, add "performant" gas overlays

* what the fuck git

* More work I guess?

* Fix stuff, create a few (empty) components for future work

* Fix temperature

* Fix tile air sharing

* Atmos optimizations

* Further atmos optimizations

* Even more optimizations!

* Update Content.Client/GameObjects/EntitySystems/GasTileOverlaySystem.cs

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Update Content.Client/GameObjects/EntitySystems/GasTileOverlaySystem.cs

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Update Content.Client/GameObjects/EntitySystems/GasTileOverlaySystem.cs

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Address a few reviews

* Oops, forgot to remove this

* Update Content.Server/Atmos/AtmosphereMap.cs

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Fix compile

* Improved client gas tile overlays

* Less allocations

* Even less allocations!

* some stuff dunno

* Big refactor time, oh yeah

* it truly is 1 AM

* bruh

* No idea why now it doesn't work.
Oh well! I'll fix this on thursday 😌

* Basic atmos serialization

* Fix bugs, add VV attributes

* Start adding stuff for gas reactions

* Add a few atmos commands

* Fill gas command

* Changes to gas opacity

* Fixes I guess

* Fixes, add space wind sound

* High pressure movement!

* Better high pressure movements.

* Fix direction, maybe?

* And now it works great

* Science!

* and this is why you don't trust people

* remove logging

* Turns out I'm fucking dumb

* Work on hotspots and reactions, add tritium gas

* IGridAtmosphereComponent interface! For future unsimulated grids.

* Makes atmos updates NoGC.

* C E A S E

* Add settemp atmos command

* Important reminder.

* Remove useless AtmosCooldown.

* More work on hotspots

* Overlays for hotspots. Fire works!

* Turns out I suck at coding

* Fire texture change

* Yeah let's make that an absolute value, hmm?

* Support for atmos after teleporting grid (more or less)

* fix attempt (doesn't actually fix it)

* Make static variable not static

* Remove magic numbers

* Stopwatch moment

* Slight cleanup.

* More cleanup.

* Atmos optimizations

* Fix build

* Remove useless ghost atmos shit

* Adds CanSeeGases component for gas overlay stuff

* Component and prototype ignores

* ExcitedGroups now dispose on being merged with others

* Some tweaking.

* Atmos now uses frame time for updates.

* Nullable boogaloo

* IExamine fix

* Fix build

* Fix restartround

* Atmos tweaking, use invalid direction

* Increase high pressure movement force

* Better sort

* Update submodule.

* NULLABILITY AAAAH

Special thanks to monster860 and all monstermos contributors!

Co-authored-by: Campbell Suter <znix@znix.xyz>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: ComicIronic <comicironic@gmail.com>
Co-authored-by: silicons <2003111+silicons@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-08-02 20:08:20 +02:00
Exp a73c5ba323
Fix removehand throwing exception when no hand exists (#1570)
* Fix removehand throwing exception when no hand exists

* Message when you have no hands
2020-08-02 17:31:43 +02:00
Exp c61e6d541b
Moves ExamineSystem to Shared & adds next step info to construction examine (#1567) 2020-08-01 17:37:12 +02:00
metalgearsloth 7f0c379e87
Fix reachable merges (#1550)
Turns out the last PR revealed another issue but this will fix #1547

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-08-01 14:13:44 +02:00
DrSmugleaf 808791f498
Fix disposal unit power issues (#1564)
* Fix being forever eaten by an unpowered unit

* Add 0 hands check to getting out of an unit

* Add engage check when the power is changed

* Remove redundant serializable field

* Add queueing an autoengage when power is turned back on, the unit is engaged and it doesnt flush with items inside

* Make TryQueueEngage check for no contained entities

* Remove redundant check

* Fix flushing animation not being played when powering an engaged unit
2020-08-01 14:10:24 +02:00
Exp d7d36f090a
Fixed Construction Zip Sound Path (#1565) 2020-08-01 12:45:38 +02:00
DrSmugleaf 9277ed5248
Stop caching connected tubes and discover them on each step (#1554) 2020-08-01 03:45:40 +02:00
DrSmugleaf 9063379af9
Fix build (#1551)
* Fix conveyor and conveyor switch serialization

* SS14 in reactive when

* Fix new test fail with units being able to accept items when unpowered
2020-08-01 01:20:41 +02:00
DrSmugleaf 7a983062a9
Fix disposal units in general (#1552)
* Makes disposal units able to be entered when unpowered

* Make the unit's light turn off when unpowered

* Remove event handlers on component removal

* Make the disposal unit's lever engage when queueing an auto engage

* Autoengaging the lever on insert was a mistake

* Make the engage button active when engaged

* Make the engage button toggleable

* Fix nullable error
2020-07-31 14:50:46 +02:00
Pieter-Jan Briers 8fdb9cbe80
Fix potted plant container name. 2020-07-31 01:24:35 +02:00
DrSmugleaf 7c1acf2fe1
Fix disposals anchored test and fix disconnect method (#1545) 2020-07-31 00:12:45 +02:00
Pieter-Jan Briers bfe2217112
Use IMapInit in PoweredLightComponent 2020-07-30 23:59:54 +02:00
DrSmugleaf bda5ce655f
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
Acruid e8abe89820 Changes aghost spawning to use map position instead of local grid position. 2020-07-30 11:28:08 -07:00
Swept 1ec90599fa
Commit (#1541) 2020-07-30 03:22:26 +02:00
Acruid a772b505ac IComponentManager API changes. 2020-07-29 15:49:44 -07:00
Exp a7b2a1ad2f
Fix welder making unwanted sounds (#1536)
* Fix Welding making sounds if not actually welded something

* Fix Sound Error

* -Hardcode bad
-Removed duplicate sound on suicide
2020-07-29 15:14:04 +02:00
DrSmugleaf e41a6e2589
Fix crash when pulling a potted plant (#1530)
* Fix crash when pulling a potted plant

* Fix being able to pull anchored entities
2020-07-29 14:11:24 +02:00
DrSmugleaf e0f429c59b
Fix being able to pull entities outside of your container (#1533) 2020-07-29 13:32:02 +02:00
Exp 01d7a92a2b
No pointing at pointing arrows (#1527) 2020-07-29 12:36:31 +02:00
Bright0 86a6ac4a2b
Adds Handheld Radio/Listener system (#1457)
* re-do of old PR that got fuckied upp

* simplify foreach as suggested

* pass distance to PassSpeechData for a check, remove GetListenRange()

* adds RadioQuery instead of subscribing/unsubscribing

* change SpreadMessage to accept owner rather than component

* change RadioQuery to EntityQuery

* remove declared EntityQuery (oops, didn't know what shadowcommander meant)

* refactor ListeningSystem & refactor added chat logic into listen sys

* IGNORE the oopsie STOP LOOKING
2020-07-28 15:13:39 -07:00
Acruid b5667230c1
Construction Improvements (#1381)
* Actually set the tool interaction message to handled.
Remove the floating text explaining why deconstruction failed.

* Removed unused IServerNotifyManager dependency.
2020-07-28 15:11:11 -07:00
DrSmugleaf 00d5effcb8
Fix addhand command (#1519) 2020-07-28 15:38:23 +02:00
SoulSloth c579187673
Moved audio playing for melee to be before damage caculation (#1494) 2020-07-27 23:42:32 -07:00
py01 af1a824fcd
ResistanceSet Yaml serialization (#1484)
* ResistanceSet serialization

* DefaultResistanceSet

* remove wall resistance

* ResistanceSet ExposeData fix

* Remove commented out code

Co-authored-by: py01 <pyronetics01@gmail.com>
2020-07-27 23:40:08 -07:00
DrSmugleaf bd7079278e
Move moving unbuckling to update to avoid an event bus concurrent modification exception (#1509) 2020-07-27 23:37:03 -07:00
DrSmugleaf 264062cd15
Fix error when pulling a buckled entity (#1510)
* Fix error when pulling a buckled entity

* Cache BuckledTo earlier in the code
2020-07-27 23:34:42 -07:00
py01 5e0ca8a85a
Replaces obsolete PhysicsComponent usage in Power and Node (#1515)
* Node Physics replacement

* PowerReceiver Physics replacement

* wires are anchored

Co-authored-by: py01 <pyronetics01@gmail.com>
2020-07-27 23:34:01 -07:00
DrSmugleaf e2b02c69c9
Add examine verb (#1508)
* Add examine verb

* Move examine verb to the client

* Remove unused imports
2020-07-27 23:33:38 -07:00
metalgearsloth 89e0925c32
Better AI reachable cleanup (#1507)
Haven't profiled so can't say if it definitely fixes the leak.

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-07-27 16:11:07 +02:00
DrSmugleaf 0a82aba88e
Add pulling (#1409)
* Initial framework for pulling.

* Make it possible to pull items via (temporary) keybind Ctrl+Click, make items follow the player correctly.

* Make other objects pullable, implement functionality for moving an object being pulled, make only one object able to be pulled at a time.

* Make sure that MoveTo won't allow collisions with the player

* Update everything to work with the new physics engine

* Update Content.Server/GameObjects/EntitySystems/Click/InteractionSystem.cs

Co-authored-by: ComicIronic <comicironic@gmail.com>

* Physics update and convert to direct type casts

* Add notnull checks

* Add pull keybinds to the tutorial window

* Move PullController to shared

* Fix pulled items getting left behind

* Fix moving pulled objects into walls

* Remove flooring of coordinates when moving pulled objects

* Add missing null check in PutInHand

* Change pulling keybind to control and throwing to alt

* Change PhysicsComponent references to IPhysicsComponent

* Add trying to pull a pulled entity disabling the pull

* Add pulled status effect

* Fix merge conflicts

* Merge fixes

* Make players pullable

* Fix being able to pull yourself

* Change pull moving to use a velocity

* Update pulled and pulling icons to not be buckle

A tragedy

* Make pulled and pulling icons more consistent

* Remove empty not pulled and not pulling images

* Pulled icon update

* Pulled icon update

* Add clicking pulling status effect to stop the pull

* Fix spacewalking when pulling

* Merge conflict fixes

* Add a pull verb

* Fix nullable error

* Add pulling through the entity drop down menu

Co-authored-by: Jackson Lewis <inquisitivepenguin@protonmail.com>
Co-authored-by: ComicIronic <comicironic@gmail.com>
2020-07-27 00:54:32 +02:00
Víctor Aguilera Puerto b9e1f9283d
Adds cursed lockers that teleport anything inside them to other lockers (#1493) 2020-07-26 20:49:41 +02:00
Alex S f44fb104f2
Set Handled for Deconstructing Items (#1483) 2020-07-26 14:30:28 +02:00
L.E.D d3866a3372
Container light occlusion (#687)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-07-26 14:25:53 +02:00
Moses 8e08c64fcf
Show if items can be placed in a slot when hovering (#1480)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-07-26 14:25:38 +02:00
Pieter-Jan Briers 2bd318e83f
Make clown clumsy. (#1481)
Co-authored-by: scuffedjays <yetanotherscuffed@gmail.com>
2020-07-26 14:08:09 +02:00
py01 fbbe43fff8
Powernet Recalculation simplification (#1427)
Co-authored-by: py01 <pyronetics01@gmail.com>
2020-07-26 12:14:03 +02:00
DrSmugleaf 96ec60adab
Replace Houdini's magical piloting locker with buckle (#1336) 2020-07-26 12:12:53 +02:00
metalgearsloth 4e1597eeb3
Fix AI mem leak? (#1482)
Holy shit I'm dumb for missing that AGAIN.

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-07-25 21:27:24 -07:00
ShadowCommander dbfc030c5b
Rename DetachHands to AttachToGridOrMap (#1436)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-07-26 01:43:40 +02:00
DrSmugleaf 4b4e83d2bf
Add changing the amount of hands on the GUI depending on your body parts (#1406)
* Multiple hands in gui first pass

* Remove IHandsComponent interface

* Create hand class and more hand textures

* Refactor ServerHandsComponent to use a single list of hands

* Seal SharedHand

* Fix picked up items not showing on top of the hand buttons

* Remove HandsGui buttons and panels dictionaries

* Fix items in hands rendering

* Fix wrong hand container comparison

* Fix not updating the location of duplicate hands

* Change ClientHandsComponent to use a SortedList instead of a dictionary

* More merge conflict fixes

* Change SortedList to List

* Fix hand button order

* Add item tooltip for more than 2 hands and updating when removing hands

* Add add hand and remove hand command

* Merge conflict fixes

* Remove nullable reference type from ContainerSlot

* Fix texture errors

* Fix error when reaching 0 hands

* Fix error when swapping hands with no hands

* Merged remove hand methods

* Fix item panel texture errors

* Merge conflict fixes

* Fix addhand and removehand command descriptions

* Add properly displaying tooltips for 2 hands

* Make hand indexes and locations consistent across the client and server

* Add dropping held entity if a hand is removed

* Change hand location to be calculated by index

* Made different hand gui updates more consistent

* Remove human body yml testing changes

* Sanitize addhand and removehand commands

* Merge conflict fixes

* Remove testing changes

* Revert body system changes

* Add missing imports

* Remove obsolete hands parameter in yml files

* Fix broken import

* Fix startup error and adding and removing hands on the same tick

* Make hand container id use an uint

In case someone gets more than 2 billion hands

* Rename hand component files

* Make hands state use an array
2020-07-25 15:11:16 +02:00
DrSmugleaf 3a4ad42c80
Fix throwing and pointing ignoring CanChangeDirection action blocker (#1474)
* Fix being able to change direction while buckled by throwing

* Fix being able to change direction while buckled by pointing

* Wrap diff in can turn check
2020-07-24 14:51:55 -07:00
DrSmugleaf 245dbdaa3a
Add pointing (#1435)
* Add pointing keybind and simple message

* Add turning the player when pointing

* Add pointing arrow

* Make the popup message appear on the pointing entity

* Add pointing to tiles and space and proper grammar

* Move pointing bind from HandsSystem to PointingSystem

* Add more messages for pointing depending on the viewer perspective

* Fix non nullable reference type

* Serialize pointing arrow duration

* Serialize pointing arrow step and add summaries

* Make arrow speed serializable and make it depend on frame time

* Add 0.2 second delay between pointings

* Add pointing arrow yaml examples

* Add the ability for pointing arrows to be rogue

* Remove rogue package reference

* Add point to verb

https://cdn.discordapp.com/attachments/313107470031650816/735268651636228197/unknown.png

* Add shift middle clicking an entity in the verb menu to point at it

* Add VV to PointingArrowComponent

* Increase pointing delay from 0.2 to 0.5 seconds

* Address reviews

* Fix nullability errors

* Separate pointing and rogue pointing code

* Fix rogue pointing arrow visuals

* Made rogue pointing arrow rotation adjustment readable for mortals

* Make rogue pointing arrows less destructive

* Cleanup more of the rogue pointing arrow code
2020-07-24 14:51:18 +02:00
DrSmugleaf 1eac63e5bb
Fix popupmessage appearing behind the player when moving (#1401) 2020-07-24 14:26:39 +02:00
DrSmugleaf 5e2109a2d6
Add unbuckling entities that are moved away from their straps (#1437)
* Add unbuckling entities that move away from their straps

* Remove range constraint from movement unbuckling check

* Fix setting the wrong positions when buckling

* Fix beds making you sleep for the rest of your life
2020-07-24 14:22:28 +02:00
DrSmugleaf be3db34d1c
Add fire rate and caliber examine tooltip to guns (#1413) 2020-07-24 14:18:37 +02:00
DrSmugleaf 64672fdc31
Refactor to use the new multiple controller system (#1462)
* 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
2020-07-23 18:33:37 +02:00
metalgearsloth 56737b635f
Damage visualizer for simple mobs (#1332)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-07-23 02:04:03 +02:00
Exp 9585c7b82d
Fixes thrown items being stopped by open doors (#1399)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-07-23 01:51:31 +02:00
DrSmugleaf a8b3c99075
Add two-way serialization in ExposeData for some of the components that are missing it (#1451) 2020-07-23 01:46:09 +02:00
DrSmugleaf 989025b222
Add drink atmos (#1434) 2020-07-23 01:42:09 +02:00
DrSmugleaf 327b3b610f
Fix ghosts being able to empty backpacks by click dragging them onto tables (#1438) 2020-07-23 01:41:22 +02:00
DrSmugleaf b88afec350
Add slipping prediction (#1440) 2020-07-23 01:40:31 +02:00
DrSmugleaf 46f13da26d
Fix verb menu not working for clientside entities (#1400)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-07-23 00:56:30 +02:00
Kmc2000 92a9136eab
Examine text feedback for when things are powered (#1441) 2020-07-22 09:55:09 +02:00
Pieter-Jan Briers 551973fbb9
Clean up PDA code a little. 2020-07-22 02:22:21 +02:00
DrSmugleaf 8e1ecb5476
Add headbutting open airlocks when you have no hands (#1433) 2020-07-20 16:03:05 +02:00
AJCM-git 20ca4ccd4a
Re-organizing the prototypes folder (#1384)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-07-20 12:26:16 +02:00
DrSmugleaf 202954efe2
Remove unused imports (#1431)
We don't support .Net Framework anymore.
2020-07-19 17:06:51 -07:00
Alex S 2c0abe3f70
Fixes the ability to unweld inside containers (#1360) 2020-07-19 22:32:04 +02:00
DrSmugleaf cbad5edca4
Fix duplicated unbuckle out of range message (#1420) 2020-07-19 13:16:06 -07:00
DrSmugleaf 2facb57826
Fix buckling range and north facing buckle visual bug (#1421)
* Fix being able to buckle others from farther away than intended

* Make buckling range slightly bigger

* Fix north facing buckles looking strange
2020-07-19 12:34:35 -07:00
ShadowCommander e4fbc054cc
ServerStorage and Storable Yaml casing (#1424)
* Storable size yaml case fix

* ServerStorage yaml case fix

Co-authored-by: py01 <pyronetics01@gmail.com>
2020-07-19 12:12:02 -07:00
DrSmugleaf 20b175d997
Add mapping command (#1411)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-07-19 18:43:16 +02:00
R. Neuser 86c318cc74
OverlayManager 2 Electric Boogaloo (#1410) 2020-07-19 17:32:26 +02:00
Acruid c9374992a6 Converted everything to use collision and physics component interfaces. 2020-07-19 00:33:02 -07:00
Acruid ea94f4a182 Moved interaction interfaces from Server to Shared. 2020-07-18 22:51:56 -07:00
py01 e33caaddea ServerStorage yaml case fix 2020-07-18 19:41:44 -06:00
py01 72a5a3f3fd Storable size yaml case fix 2020-07-18 19:36:40 -06:00
DrSmugleaf d9ce973af0
Fix not being able to take items out of storage (#1417) 2020-07-18 05:59:22 -07:00
ike709 e65c64af14
Adds the ChemMaster 4000 (#1398) 2020-07-17 22:41:19 +02:00
Pieter-Jan Briers 11ad47303a
Fixes exceptions in AiReachableSystem on round restart. 2020-07-17 11:17:42 +02:00
DrSmugleaf 53a2392edc
Fix restartround crash and cleanup ServerStorageComponent (#1340) 2020-07-17 11:03:07 +02:00
Exp 90ca60c56a
Airlock Hacking: AutoClose & Safety (#1395) 2020-07-17 10:51:43 +02:00
Alex S 938b23ee49
Projectiles Now check for Hard (#1397) 2020-07-17 10:45:35 +02:00
Hugal31 a5051c549b
Use TheName macro and GrammarComponent (#1396) 2020-07-17 10:44:32 +02:00
DrSmugleaf f313a9267a
0 days without buckle breaking (#1366) 2020-07-17 10:43:10 +02:00
Kmc2000 5c723ea70e
RCD (#912) 2020-07-17 10:42:05 +02:00
F77F 37f5e175e0
Fix construction ghost HandsComponent check (#1386)
Co-authored-by: scuffedjays <yetanotherscuffed@gmail.com>
2020-07-17 10:40:38 +02:00
F77F de013ba2ab
Add a "give full access" button to the sandbox menu for convienence. (#1387)
Co-authored-by: scuffedjays <yetanotherscuffed@gmail.com>
2020-07-17 10:38:58 +02:00
Pieter-Jan Briers 4d9344c733
Fix integration tests. 2020-07-16 17:07:12 +02:00
ike709 203a835264
Emergent Sanitation Gameplay (#1378)
* Emergent Sanitation Gameplay

* Fix the map

* Address review

* Mention if it's slippery in the description
2020-07-11 23:49:54 +02:00
Pieter-Jan Briers bd80b0df7b
Make potted plants use the macro as example. 2020-07-11 15:19:41 +02:00
metalgearsloth 51d08e8b05
AI Reachable system (#1342)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-07-11 15:09:37 +02:00
Acruid b6b31b7294
Construction Bugfixes (#1329)
* Added: CanReach property to AfterAttack events which signals if the attack was within reach.
Fixed: You cannot construct/deconstruct things out of reach.
Fixed: Construction entities now preserve transform rotation.
Fixed: No more exceptions about missing grids when constructing world entities.
Fixed: Used the proper intermediate sprite for intermediate entities.
Fixed: Issue with missing sprite layers on ghost.

* The alligator is greedy, he always eats the bigger number...

* Adds a check so that you cannot use tools on entities that are obstructed from view.
2020-07-10 16:52:07 -07:00
Pieter-Jan Briers 894d0e4491
Update submodule. 2020-07-10 21:15:12 +02:00
Pieter-Jan Briers a2920d07dd
Optimize ContainerSlot 2020-07-10 21:00:05 +02:00
metalgearsloth a77f219515
Minor A* optimisations (#1335)
* Add some extra comments
* Remove the redundant closedTiles variable
* Rename some variables to better match the common naming schemes

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-07-10 20:30:33 +02:00
metalgearsloth 2e6661e885
Fix AI shutting storage crash (#1344)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-07-10 17:27:36 +02:00
ike709 915fffb635
Latejoin Job Selection (#1284)
* UI version 1

* Latejoining

* cleanup

* missed a line

* Various fixes

* comment
2020-07-10 15:27:55 +02:00
tentekal 4a772c9e59
Added a check to ensure the door will not change state to 'closed' or 'deny' if a player without access touches a door opened by a user with access. (#1341) 2020-07-10 15:12:34 +02:00
Víctor Aguilera Puerto 8785371563 Makes weapons use GridCoordinates and default to MapCoordinates if grid is invalid 2020-07-10 01:53:36 +02:00
Víctor Aguilera Puerto e54e708cf2 Makes weapons use MapCoordinates instead of GridCoordinates. 2020-07-10 01:19:09 +02:00
Víctor Aguilera Puerto 73f4dba2f6 Fix slippery items not allowing airlocks to close 2020-07-09 17:22:46 +02:00
Víctor Aguilera Puerto 626c8c51a1
Adds slippery items (#1321)
* Start work on Slippery Component

* Slips work

* Add banana peel

* Add required slip speed

* Add slip sound

* Adds soap

* Make soapnt, soapsyndie and soapdeluxe inherit soap

* Adds homemade soap and omega soap

* Fix slipping not taking into account the entity being in a container
2020-07-09 17:00:37 +02:00
metalgearsloth 8938d96402
Fix AI avoiding entities they can't collide with (#1331)
Should stop mobs getting trapped at the bar on saltern as they try to avoid light bulbs

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-07-09 14:15:48 +02:00
DrSmugleaf 749a46de20 Fix dropping an item inside a locker placing it outside 2020-07-09 12:35:18 +02:00
Víctor Aguilera Puerto 6f9736c381
Merge pull request #1323 from DrSmugleaf/thrown-entity-deletion-crash-1286
Fix thrown entity deletion crash
2020-07-09 00:16:43 +02:00
Víctor Aguilera Puerto 7ae114f92c
Merge pull request #1263 from DrSmugleaf/buckle-locker-fix-1262
Fix buckle in general
2020-07-09 00:15:28 +02:00
Víctor Aguilera Puerto b0895a4213
Fix AI steering spamming console (#1322) 2020-07-09 00:15:05 +02:00
Pieter-Jan Briers 023fd60054
Fix throwing in space. 2020-07-08 18:29:13 +02:00
DrSmugleaf 1d7928101b Fix change that was lost in disposals translation 2020-07-08 16:44:56 +02:00
DrSmugleaf dc979f87c2 Remove unused using 2020-07-08 16:43:40 +02:00
DrSmugleaf ecb0448250 Fix thrown entity deletion crash 2020-07-08 16:39:05 +02:00
Metal Gear Sloth 62302bfb23 Use named tuples
Thanks remie
2020-07-09 00:16:57 +10:00
DrSmugleaf 066af63323 Fix not being able to buckle into an entity that is in the same container as you 2020-07-08 16:10:46 +02:00
metalgearsloth b4adfbc15a
Update Content.Server/GameObjects/EntitySystems/AI/Steering/AiSteeringSystem.cs
Co-authored-by: Remie Richards <remierichards@gmail.com>
2020-07-09 00:03:48 +10:00
DrSmugleaf 4ec733577f Fix "You can't reach there!" message being created twice 2020-07-08 16:00:04 +02:00
Metal Gear Sloth 8678d867cf Fix AI steering spamming console
Turns out you shouldn't cancel pending jobs.
2020-07-08 23:44:47 +10:00
DrSmugleaf fb51aecfbf Clean up if check 2020-07-08 15:37:18 +02:00
DrSmugleaf e1f9033a69 Merge branch 'master' into buckle-locker-fix-1262 2020-07-08 15:35:20 +02:00
Víctor Aguilera Puerto e815de7563
Fix pathfinding for entity deletions (#1316)
* Fix pathfinding entity deletions

Also some slight optimisations in the process.

* Remove redundant method

Not used anymore.

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-07-08 15:31:28 +02:00
DrSmugleaf f5a9f91de4 Fix not staying buckled to a strap when both the buckled and the strap go into the same container 2020-07-08 15:30:48 +02:00
DrSmugleaf 8f9af88bb2 Add unbuckling the entity if put into a container 2020-07-08 14:45:25 +02:00
DrSmugleaf d20e4969e2
Add light to lit welders (#1282)
* Add light to lit welders

* Fix null errors

* Make the welder light orange
2020-07-08 13:41:32 +02:00
DrSmugleaf 770d4e72e7 Add 0.25 second delay to unbuckling after recently buckling and more summaries 2020-07-08 13:22:14 +02:00
Metal Gear Sloth facaee0cab Remove redundant method
Not used anymore.
2020-07-08 21:12:23 +10:00
Metal Gear Sloth ae1c578e8e Fix pathfinding entity deletions
Also some slight optimisations in the process.
2020-07-08 21:05:27 +10:00
DrSmugleaf f9a948ace3 Fix wrong buckle status effect icon texture path 2020-07-08 13:02:38 +02:00
DrSmugleaf 39b650da38 Fix "You're already buckled in" not appearing if trying to buckle while already buckled 2020-07-08 13:01:08 +02:00
DrSmugleaf da4b55814a Fix halved buckle range not applying, add range property to strap 2020-07-08 12:54:00 +02:00
ike709 2d2385032a
Admin chat (#1287)
* Admin chat

* Change it to show username, not character name

* moves the thing

* Removes SenderEntity
2020-07-08 12:18:16 +02:00
bhespiritu df395b9435
Fixed Welding Tool Not Updating (#1314)
* Fix Welding Tool Not Updating

- Added in the ISolutionChange interface so that it dirties the entity any time the amount of welding fuel changes. This applies whether it's lit or unlit.
- I also removed some redundant code.

* Update Content.Server/GameObjects/Components/Interactable/WelderComponent.cs

Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
2020-07-08 11:46:54 +02:00
Pieter-Jan Briers 5d0b86c659
Hide transfer verbs when right clicking reagent container in active hand.
Fixes #1313
2020-07-08 02:54:54 +02:00
metalgearsloth 1d96adcc2c
Add Breadth-First Search pathfinder (#1283)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-07-08 01:41:41 +02:00
DrSmugleaf e7d756811e
Replace CanBeNull annotations with nullable reference types (#1270)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-07-08 01:41:20 +02:00
metalgearsloth 5aefae184c
Refactor AI considerations (#1278)
Considerations are now instantiated under a manager and re-used between entities where they pass in their blackboard to get a score back.
Also makes the API a bit nicer to use.
Also some random cleanup.

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-07-08 01:37:35 +02:00
Víctor Aguilera Puerto 271945e1a5 Cleanup flashbangs. Fixes #1305 2020-07-08 00:51:08 +02:00
Víctor Aguilera Puerto a7565b7651 Fix stunbaton issues 2020-07-07 23:12:12 +02:00
DrSmugleaf 8f685f0541 Merge branch 'master' into buckle-locker-fix-1262 2020-07-07 20:36:43 +02:00
AJCM-git ae41d03ec6
Re-organizing the Resources folder. Part 1. (#1234)
* First commit

* Lockers

* Lockers electric boogaloo

* Crates and Lockers

* Almost finishing the Textures folder

* Updating texture paths. Reminder to fix:
* Lockers
* Windows
* Vending Machines
* APC
* Catwalks
* Bedsheets and Cloaks
* Status effects

* dont know what happened here

* Commit before merge

* re-organizing

* Lockers broken

* Commit before merge

* Submodule

* renaming

* Fixing most issues

* forgot these ones

* Updating submodule

* typo

* Fixing some paths

* fixing some paths

* updating submodule

* (hopefully) fixing the submodule
2020-07-07 19:19:00 +02:00
metalgearsloth 0ecaba1727
Minor AI system fixes (#1292)
* Add test to check all LogicNames in prototypes
* Change CreateProcessor to AiLogicProcessor (I thought I'd already done this as I remember PJB telling me to do this but apparently I'm an idiot)
* Temporarily remove invalid AiControllers

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-07-07 18:56:38 +02:00
DrSmugleaf e0f888344e Add more interaction checks 2020-07-07 01:40:08 +02:00
DrSmugleaf 2fd93091c7 Allow interaction if targeting the containing entity 2020-07-07 01:10:21 +02:00
DrSmugleaf 5901e6e45f Replace InEntityStorageComponent with in container check 2020-07-07 01:00:29 +02:00
DrSmugleaf 0a292634be Add Shutdown override to EntityStorageComponent 2020-07-07 00:49:14 +02:00
DrSmugleaf e5d78152c8 Replace Has & Add with Ensure 2020-07-07 00:35:38 +02:00
DrSmugleaf 793f843ae8 Fixing these namespaces was a mistake 2020-07-07 00:33:57 +02:00
DrSmugleaf 7cc5a3fb65 Merge conflict fixes 2020-07-07 00:23:41 +02:00
DrSmugleaf b850ac2437 Merge branch 'master' into buckle-locker-fix-1262 2020-07-07 00:20:07 +02:00
DrSmugleaf c78ce3e27a
Add click dragging for buckle (#1290) 2020-07-07 00:04:30 +02:00
Pieter-Jan Briers 5056ded35e
Fix compile 2020-07-06 23:44:29 +02:00
R. Neuser 88f49961d8
OverlayManager refactor and Flash (#1218)
* Flash component, overlay and shader
Add BeginDraw method to Overlay.cs

* Add flash icons, sounds

* Progress

* Multiple overlays without enums

* This is probably the worst way to do this IDK

* Remove nullable reference type

* Add AttackEventArgs as parameter to OnHitEntities
MeleeWeaponComponent.Attack now continues when OnHitEntities returns true (it hit something)
Add OverlayType enum so client and server can agree on overlay ids
Move IConfigurable to its own file
Add AoE flash with shorter duration
Flashing someone slows them down

* Add arc to flash
Set item size to something reasonable
Remove chat log message when flash burns out

* Remove unused interface
2020-07-06 23:37:39 +02:00
chairbender b35333d366
Click Drag Functionality + Refactor Interaction Interfaces (#1125)
Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
Co-authored-by: ComicIronic <comicironic@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-07-06 23:27:03 +02:00
ike709 c019d428a7
Antag preferences and antag prototype (#1264)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-07-06 23:24:29 +02:00
Pieter-Jan Briers cee8aaa84c
Fix cases of net messages not being registered before being sent. 2020-07-06 22:57:01 +02:00
Jackson Lewis 90982d8943
Fix airlock collisions (#1030)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-07-06 22:00:07 +02:00
py01 137511d8b9
NodeGroup remake deferment (#1268)
* Remove Unnecessary AnchorUpdate() call

* NodeGroupManager

* NodeGroupManager issues NodeGroup remake attempts

* Code cleanup

* NodeGroupManager only stores dirty groups, handles them on next frame

* Removes unused NodeGroupManager dependency

* Prevents OnRemoveNode from iterating over every connector after the first time

* Revert "Prevents OnRemoveNode from iterating over every connector after the first time"

This reverts commit c72af4b18d55192af789514f74bef893cf076fbc.

* Dependancy warning fix

Co-authored-by: py01 <pyronetics01@gmail.com>
2020-07-06 15:48:18 +02:00
metalgearsloth 7e4b506aaf
Fix AI not using items in hand (#1273)
I love 1 character commits

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-07-05 12:17:17 +02:00
DrSmugleaf abfe86be81 Add customizable buckled status effect icon per strap 2020-07-04 14:14:39 +02:00
DrSmugleaf 47118e8301 Fix entering noclip when a locker is closed over a buckled entity and the chair is then deleted 2020-07-04 14:10:37 +02:00
DrSmugleaf 0f16b9b8f1 Replace CanBeNull annotations with question marks 2020-07-04 13:51:14 +02:00
DrSmugleaf 2691d34d5c Fix not standing up after getting off of a bed 2020-07-04 13:44:32 +02:00
DrSmugleaf 45211a2f0b Fix a buckled entity's sprite being drawn over the chair when looking up 2020-07-04 01:28:06 +02:00
DrSmugleaf b00d8310de Remove free hand check from buckle 2020-07-03 23:58:12 +02:00
DrSmugleaf 81647d696e Disable interactions for entities in storage 2020-07-03 23:57:19 +02:00
DrSmugleaf 7f02d46cb4 Replace IsContained with ContainerHelpers.IsInContainer 2020-07-03 23:43:01 +02:00
DrSmugleaf 73eb53da46
Fix a player's mob continuing to move after disconnecting (#1265) 2020-07-03 23:32:41 +02:00
Jackw2As 68a515ee09
Adds Damage on tool interaction component (#1060) (#1102)
Fixed issue with Welding Tool ignoring the tools list.
2020-07-03 23:27:52 +02:00
ike709 a4ced5f1fc
Fixes being able to drink a closed drink (#1257) 2020-07-03 23:26:13 +02:00
DrSmugleaf dd72c1e3f0 Fix being able to buckle through a locker and reality collapsing 2020-07-03 14:54:45 +02:00
Acruid 3ee480a3b1
Deconstruction Features (#1242)
* ConstructionSystem now detects when a tool is used on an arbitrary entity.

* Refactored building logic from ConstructionComponent to ConstructionSystem.

* Add OnDeconstruct events so that deconstruction can be blocked if prerequisites are not met.

* Multi-step deconstruction works.
Windows can be deconstructed using a screwdriver.

* In-hand construction and deconstruction works.

* Intermediate entities now have a better name assigned to them when created.

* Removed a question mark to appease Jenkins.

* Instead of running ExposeData on the existing ItemComponent of an intermediateFrame, the system will now replace the existing ItemComponent with a new one, and run ExposeData on the new one.
2020-07-02 14:50:57 -07:00
Bright0 6c205c4a79
Can only remove item from storage if active hand is free (#1255)
Co-authored-by: Bright0 <nsmoaksmoakna@gmail.com>
2020-07-02 23:37:10 +02:00
DrSmugleaf 0a8a383019
Fix lasso buckle (#1246)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-07-02 23:36:06 +02:00
Pieter-Jan Briers bc24a852f9
Fix throwing. 2020-07-02 23:28:37 +02:00
GlassEclipse 610ab8bf50
BodySystem stuff 2: overused boogaloo (#1174)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-07-02 20:51:14 +02:00
Swept 7d346ede28
Grenade Launcher Adjustments (#1230) 2020-07-02 20:37:24 +02:00
DrSmugleaf dbd9ee1671
Fix reagent spill errors (#1180)
Co-authored-by: ComicIronic <comicironic@gmail.com>
2020-07-02 20:31:40 +02:00
Swept ebebb3603a
Added a buncha bloat from teegee (#1203)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-07-02 16:05:03 +02:00
Tyler Young 9f1bdb4b0a
Make Server/Client Ignored Components lists easier to find (#1202)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-07-02 15:50:45 +02:00
ShadowCommander bb51fe2cc0
Fix EntityStorage entities going through walls when opened (#1181) 2020-07-02 15:31:55 +02:00
Exp 8171e40a37
Added bolts to airlocks (#1138)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-07-02 15:31:06 +02:00
windarkata 6775ae8153
Cargo Console Limit (#1095)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-07-02 14:45:40 +02:00
Pieter-Jan Briers 7e061b5968
Fix compile. 2020-07-02 14:00:45 +02:00
Dean fbe5dbedaa
Airlocks can now be opened only by moving towards them (#1028)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-07-02 12:06:14 +02:00
py01 7b17698336
Power works with Anchorable (#1240)
Co-authored-by: py01 <pyronetics01@gmail.com>
2020-07-02 12:02:29 +02:00
metalgearsloth 7291c318e4
Fix Job<T> debug timer (#1248)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-07-02 11:46:45 +02:00
Acruid f0561d8d95 Changes resulting from merging Client and Server PhysicsComponent. 2020-07-01 12:03:19 -07:00
py01 b807b9e7ee
Time delay on change of Apc Ui charge % (#1241)
Co-authored-by: py01 <pyronetics01@gmail.com>
2020-07-01 17:39:09 +02:00
Pieter-Jan Briers a66386149d
Adds movement stress test component.
It moves a lot to stress test moving things.
2020-06-30 18:34:42 +02:00
metalgearsloth 49586e5dcb
Slight nutrition clean (#1224)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-06-28 17:52:34 +02:00
metalgearsloth 6f296320a1
InventoryComponent now returns null if comp is deleted (#1227)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-06-28 17:44:33 +02:00
metalgearsloth 29f1730d71
Remove pathfinding graph node directions (#1223)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-06-28 17:43:06 +02:00
metalgearsloth 24831bf8a0
Refactor AI movement (#1222)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-06-28 17:42:44 +02:00
py01 23cc6b1d4e
Power Rework (#863)
Co-authored-by: py01 <pyronetics01@gmail.com>
2020-06-28 17:23:26 +02:00
Pieter-Jan Briers 579ff6bb26
Use async DB queries. 2020-06-26 03:46:28 +02:00
GlassEclipse 00b4ad994b
Fixes lathe bug (#1228) 2020-06-25 18:57:40 +02:00
DrSmugleaf 602dac393e
Add Buckling (#1155)
* Create BuckleableComponent.cs

* Add strap component and keybind to buckle targeted entity

* Remove buckle keybind, turn it into a verb

* Add moving and attaching the buckled entity to the strap

* Fix reality collapsing when clicking on a buckled entity

* Add strap position to buckle a mob in the standing or down position

* Add new default strap position that makes no change to the mob's standing state

* Add Strap component to office chairs and stools

* Add Strap component to the pilot chair

* Add buckled status effect icon

* Add status effect click behaviour

* Add buckling and unbuckling sounds

* Change Buckle verb to only appear when an entity can be currently buckled

* Rotate buckled entity in the direction of the seat

* Disable entity rotation when buckled

* Fix buckle rotation on beds

* Buckling now finds the closest strap to the buckleable entity

* Fix rotation when unbuckling an entity

* Move buckle verb to StrapComponent

* Added buckled entity unbuckle verb, range and interaction checks

* Add checks for currently occupied straps

* Add unbuckling entity if its respective strap component is removed

* Add Clickable, InteractionOutline and Collidable components to bed

* Add rotation property to strap component

* Rename Buckleable to Buckle

* Add Buckle and Strap sizes to buckle multiple entities in the same strap

* Remove out of range popup message from strap verb GetData

* Move BuckledTo setter logic to its methods

* Fix Strap BuckledEntities being public

* Fix not updating status when Buckle component is removed

* Change BuckleComponent.BuckledTo to be of type StrapComponent

* Fix NRE when unbuckling

* Add buckle perspective messages

* Fix not equals comparison in strap verb

* Add added check to Strap TryAdd

* Change buckle.ogg and unbuckle.ogg from stereo to mono

* Remove -2f volume on buckle and unbuckle sounds

* Add summary to Strap TryAdd and Remove methods

* Make buckled entities unable to fall

* Fix default strap position not rotating the buckled entity

* Add downing after unbuckling an entity if it is knocked down

* Prevent an entity from buckling onto itself

Fixes stack overflow error

* Disable recursive buckling

* Add buckling onto straps by clicking them with an empty hand

* Add recursive buckle check to the trybuckle method as well

* Fix being able to click on a different strap to unbuckle from the current one

* Merge TryUnbuckle and ForceUnbuckle with a force argument

* Remove explicit unimplemented status effect clicking cases

* Add documentation to EffectBlockerSystem and ActionBlockerSystem
2020-06-25 15:52:24 +02:00
Víctor Aguilera Puerto b8eb9289a6 Instruments no longer stop playback when someone disconnects. Fix #1209 2020-06-25 15:01:46 +02:00
Swept bad7f9dc6b
Lots of new inhands, adds phoron (#1220)
* Beaker Inhands

* Flashlight Inhands

* Tile Refactor

* Adds metal/glass sheet inhands

* Removes plasma

* Adds Phoron

* We boolin'

* Phoron inhands

* First Pass inhand food

* First food inhand pass

* Soda inhand sprites

* Actually adds them
2020-06-25 13:51:58 +02:00
Víctor Aguilera Puerto 70a803e24e Cleanup ToolComponent 2020-06-25 13:50:41 +02:00
Víctor Aguilera Puerto 6f47669b38 Fix all tools having anchorable quality by default 2020-06-25 01:33:54 +02:00
Pieter-Jan Briers dab73913a6
Merge branch '20-06-24-movement-prediction' into 20-06-24-foobar 2020-06-24 21:00:55 +02:00
Pieter-Jan Briers 74a63c9555
GUNS PELASE WORK. 2020-06-24 20:00:31 +02:00
ShadowCommander 9b6455519b
Implement DeleteEntitiesWithComponent console command (#1210)
Deletes entities that have all of the provided components
2020-06-24 10:52:52 -07:00
Víctor Aguilera Puerto 99be18f8da Magazine barrel chamber container can be VV'd 2020-06-24 19:31:24 +02:00
Tyler Young b92a2ba4e6
Fixes movement and throwing incorrect tick-rate scaling (#1162)
* fixes movement and throwing scaling incorrectly w/ tick rate

* Update Content.Server/GameObjects/EntitySystems/MoverSystem.cs
2020-06-24 18:41:31 +02:00
metalgearsloth d12a6bd9cf
Add xenos (#1204)
* Add xenos for stress test

Pretty hacky and not how I'd do it long-term

* Remove claws

* Add in unarmed combat behaviors

* Cleanuppppp

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-06-24 17:43:58 +02:00
metalgearsloth 02b8487d6c
Fix EntityTest for guns (#1206)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-06-24 17:31:04 +02:00
metalgearsloth ee209cd720
Fix grenades throwing (#1205)
Exceptions

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-06-24 17:30:39 +02:00
metalgearsloth 63f2724341
Add default ammo for guns (#1207)
* Add default ammo types

* Add revolver and bolt action default pro support

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-06-24 17:29:40 +02:00
Pieter-Jan Briers 6d4618e8be
Merge branch 'master' into 20-06-24-movement-prediction 2020-06-24 12:04:06 +02:00
Pieter-Jan Briers d73f9d3721
Merge branch 'component-tweaks' into 20-06-24-submodule 2020-06-24 12:00:58 +02:00
Pieter-Jan Briers 5a5a3b8548
Move "players don't collide with mobs" to shared to fix mispredicts on it. 2020-06-24 11:58:13 +02:00
Pieter-Jan Briers f3a816321c
Merge branch 'master' into 20-06-24-movement-prediction 2020-06-24 04:04:43 +02:00
Pieter-Jan Briers da45a52325
WiP movement prediction. 2020-06-24 02:21:20 +02:00
DrSmugleaf 78085855db
Fix a late joining client not knowing if the lobby has been paused (#1199)
* Fix client not knowing that the lobby is paused when joining after the pause

Also fixes a client thinking that a lobby is paused when joining a new one after leaving a previously paused one

* Add server announcement to delaying and pausing round start
2020-06-23 21:30:37 +02:00
Víctor Aguilera Puerto 7089b60738 Rejuvenate now resets stuns.
Fixes #1198
2020-06-23 21:05:25 +02:00
Víctor Aguilera Puerto 137d32e6aa
Timed spawners (#1196)
* "Spawner" is a word.

* Timed Spawners.

* Default interval is now 60s
2020-06-23 20:24:25 +02:00
Víctor Aguilera Puerto ae541bbdab Balance stunbaton.
Now it has a different stun chance depending on whether the other mob is slowed down or not.
2020-06-23 18:35:48 +02:00
ShadowCommander 5a6417cadf
Merge pull request #1184 from ShadowCommander/UnarmedAttack
Implement unarmed combat
2020-06-23 08:17:32 -07:00
ShadowCommander 264d3d3942 Add fist graphic and change some punch settings 2020-06-23 05:53:38 -07:00
metalgearsloth 805a5f1689
Refactor pathfinding updates and add AccessReader support (#1183)
There was some extra bloat in the path graph updates.
Now the queue should also just run if it gets too big regardless.
Un-anchored physics objects are no longer a hard fail for pathfinding.
Add AccessReader support so open / close doors show up for pathfinding
AI also ensure they call the operator's shutdown when they're shutdown so that should cancel the pathfinding job.

I tried to split these into 2 commits but they were kinda coupled together

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-06-22 18:55:50 +02:00
DrSmugleaf ff0f082138
Fix being able to use invalid verbs as a ghost (#1157)
* Add CanInteract check to 18 verbs

* Add more caninteract checks to verbs without it

Storage toggle open, ammo box dump, bolt open and close, revolver spin and magazine open and close
2020-06-22 18:54:56 +02:00
metalgearsloth 6fe7d11d54
Fix battery barrel low energy ratio exception (#1187)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-06-22 15:19:01 +02:00
metalgearsloth ac2c7da31f
Add magazine auto-eject message back in (#1191)
I goofed.

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-06-22 15:18:41 +02:00
Tyler Young 4b64aa2b9d
fix benchmark
improve some test diagnostics

fix some bug where order of shutdown of AiControllerComponent mattered or Processor was never initialized
2020-06-22 04:49:54 -04:00
Víctor Aguilera Puerto 3f7bd3010c Fix RevolverBarrelComponent ExposeData not checking if serializer is reading 2020-06-22 04:10:44 +02:00
ShadowCommander 9bf53a4218 Implement unarmed combat 2020-06-21 18:31:56 -07:00
Víctor Aguilera Puerto 8e23f8fd40 Food trash is optional by default. Fix FoodBase not having a FoodComponent. 2020-06-21 23:02:58 +02:00
metalgearsloth b6966a9b7f
Add inhands support for startingGear (#1166)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-06-21 22:37:03 +02:00
DrSmugleaf d91a8c4925
Add delaystart and forcepreset commands (#1163)
* Add extendroundstart message to extend lobby start timer

* Rename StartExtend to DelayStart

* Fix delaystart amounts above 59 not working

* Change delaystart seconds type from int to uint

* Change delaystart wrong args amount message

* Add forcegamepreset command

* Rename forcegamepreset to forcepreset and merged start and forcestart preset methods

* Fix index out of bounds exception when forcing suspicion to start

* Change game preset to match regardless of casing

* Add forcepreset unknown preset message

* Add and move in lobby checks

* Remove testing changes

* Change delaystart to pause/resume the timer when no seconds are specified

* Change pause message

* Remove testing code

* Change 0 seconds to not be a valid amount of seconds

* Replace MsgTickerLobbyCountdown Seconds with DateTime instead of uint

* Add one entire dot

* Replace Math.Min + Math.Max with Math.Clamp

Co-authored-by: ComicIronic <comicironic@gmail.com>

Co-authored-by: ComicIronic <comicironic@gmail.com>
2020-06-21 22:05:47 +02:00
DrSmugleaf 0e92a0c88c
Add backpack bombing (#1156)
* Change exploding storages to explode their contents as well

* Change storages to only trigger content explosions when the severity is heavy or destruction

* Make inventories explode their contents as well

* Change InventoryComponent IExAct into an explicit implementation

* Change chain explosions to only trigger for explosion severities larger than or equal to heavy
2020-06-21 21:57:22 +02:00
metalgearsloth 62bbf59def
Fix AIController throwing on shutdown (#1177)
Fixes EntityTest

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-06-21 21:55:56 +02:00
metalgearsloth 99f46d1ca5
Misc. AI fixes for CM test (#1165)
* Dumped ranged behaviors
* Fixed some 1-liners (open storage, distancecon todo)

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-06-21 21:48:22 +02:00
metalgearsloth 95995b6232
Add a LOT more dakka (#1033)
* Start adding flashy flash

* Change slop

Might give a smoother decline

* flashy flash

* Add flashbang and flash projectiles

Bang bang bang pull my flash trigger

* Add collision check to area flash

* Flash cleanupo

* flash.ogg mixed to mono
* Adjusted flash curve again

* Enhancing flashes with unshaded and lights and shit

Still a WIP

* Add the other ballistic gun types

Re-organised some of the gun stuff so the powercell guns share the shooting code with the ballistic guns.

* Re-merging branch with master

Also fixed some visualizer bugs

* Last cleanup

Fixed some crashes
Fixed Deckard sprite
Fixed Hitscan effects
Re-applied master changes
Re-factor to using soundsystem
Add some more audio effects

* Cleanup flashes for merge

Can put flashbangs in lockers so you don't get blinded

Fix some bugs

* Fix shotties

Also removed some redundant code

* Bulldoze some legacycode

brrrrrrrrt

* Fix clientignore warnings

* Add the other Stunnable types to StunnableProjectile

* Some gun refactoring

* Removed extra visualizers
* All casing ejections use the same code
* Speed loaders can have their ammo pulled out
* Bolt sound less loud

* Stop ThrowController from throwing

* Fix speed loader visuals

* Update hitscan collision mask and fix typo

* Cleanup

* Fit hitscan and flashbang collisions
* Use the new flags support

* Update taser placeholder description

* Update protonames per style guide

* Add yaml flag support for gun firerates

* Cleanup crew

* Fix Audio up (components, audio file, + remove global sounds)
* Add server-side recoil back-in (forgot that I was testing this client-side)
* Add Flag support for fire-rate selectors

* Wrong int you dolt

* Fix AI conflicts

Haha ranged bulldozer go BRR
(I'll rewrite it after the other AI systems are done).

* Mix bang.ogg from stereo to mono

* Make sure serializer's reading for guns

Fixes integration test

* Change EntitySystem calls to use the static function

Also removed the Pumpbarrel commented-out code

* Change StunnableProjectile defaults to 0

* Fix taser paralyse

Apparently removing defaults means you have to specify the values, whodathunkit

* Add slowdown to stunnableprojectiles and fix tasers

* Remove FlagsFor from gun components

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
2020-06-21 21:47:15 +02:00
DrSmugleaf ac19ad7eac
Fix crash when the round restarts (#1161) 2020-06-21 17:28:43 +02:00
metalgearsloth b1d3f0403a
Fix AI not shutting down their operator (#1176)
Was banging my head against the wall for this because I R dumb.
It only ever popped up when large numbers of AI were spawned in.

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-06-21 16:00:05 +02:00
DrSmugleaf 99a5e06b98
Adds eating with utensils (#1136)
* Add Utensil component

For eating. With utensils.
Added to fork, plastic fork, spoon, plastic spoon and plastic knife.
Ignored component on the client.

* Add break chance to utensils

Set to 20% for plastic ones

* Add break sound to utensils

* Add utensil kinds

None, fork, spoon and knife.
For sporks, forknifes and sporknifes, of course.

* Add restricting foods by utensils needed

* Fix utensils breaking when food isn't eaten

* Moved getting held utensils to FoodComponent

* Add breaking a clicking utensil even if its not necessary to eat the food

* Move use utensil code to a separate method

* Add telling a handless entity when they need an utensil to eat

The immersion is off the charts

* Change food trash to only be held when the food was also being held

* Fix Wi-Fi utensils

* Remove unnecessary utensil ItemGroup

* Made TryUseFood public, removed redundant trash position update

* Renamed UtensilKind to UtensilType

* Remove eating food when clicking with it on nothing

* Disable eating food when clicked directly if it requires an untensil to eat
2020-06-19 15:20:59 +02:00
Vince cda8f8b2bc
Changed "Run" to "Walk" in code (#1154)
* Changed "Run" to "Walk" in code

Fixes #844

* Revert "Changed "Run" to "Walk" in code"

This reverts commit bf70dc7214d08c208823bccd5d3f36854d6b80de.

* Changed "Run" to "Walk" in code

Fixes #844
2020-06-19 15:15:25 +02:00
Víctor Aguilera Puerto 5495f88583 HandComponents now have a default hand, fixes crash 2020-06-18 19:26:55 +02:00
Víctor Aguilera Puerto 63acae7937 Prevent AI from dropping something that's not in their hands 2020-06-18 15:38:40 +02:00
metalgearsloth 5391d3c72a
Add utility AI (#806)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-06-18 14:52:44 +02:00
Pieter-Jan Briers 960287c65d
Merge branch '20-06-16-click-detect' into 20-06-18-merge 2020-06-18 02:35:03 +02:00
Pieter-Jan Briers c5b1042573
Merge branch 'drop-decimal-use-cannyfastmath' into 20-06-18-merge 2020-06-18 02:34:47 +02:00
F77F a1ce0555f3
Add id_swipe.ogg , change pda eject sound (#1146)
Co-authored-by: scuffedjays <yetanotherscuffed@gmail.com>

Hi Memory
2020-06-17 01:21:41 +02:00
Pieter-Jan Briers c5f64248c1
Remove interaction system bounding box check. 2020-06-16 16:10:38 +02:00
Pieter-Jan Briers 4136388028
Sprite-based click detection. 2020-06-16 16:00:19 +02:00
Acruid 189ed9309f
Removes the ConstructorComponents and moves the construction blueprint feature into a new ECS system. (#1114) 2020-06-15 12:30:11 -07:00
Tyler Young de274de9e3
use CannyFastMath in various places even where it might not be any different
also update a bunch of packages

clean up redundant YamlDotNet references
2020-06-14 09:36:53 -04:00
Víctor Aguilera Puerto 64dd3b0860 Moves SharedInteractionSystem to Content.Shared namespace 2020-06-13 16:10:26 +02:00
Pieter-Jan Briers 518a006d70
Fix nullability warning. 2020-06-13 03:18:34 +02:00
Pieter-Jan Briers 29365353a5
Remove SharpZipLib and System.ValueTuple dependencies 2020-06-13 03:13:34 +02:00
Bright0 4b9a6c18fe
Adds hacking UI pop-up when using a hacking tool on an open panel (#1100)
Co-authored-by: Bright0 <nsmoaksmoakna@gmail.com>
2020-06-12 18:51:30 +02:00
DamianX 7817681894
Refactored GalacticBankManager (#1089) 2020-06-12 18:31:57 +02:00
Swept 3d922749d9
Cleans up some component errors from the console. (#1091) 2020-06-12 18:26:35 +02:00
Víctor Aguilera Puerto cb5acf7cd3
Cooldown for status effects (#1109) 2020-06-12 16:22:36 +02:00
Tyler Young 077e726c33
add complete strings that aren't defined in content files to allow them to be mapped (#1105) 2020-06-12 04:15:10 +02:00
Víctor Aguilera Puerto df342548b5 Fix SpeciesComponent not taking state CanEquip/CanUnequip/CanChangeDirection into account 2020-06-09 02:35:22 +02:00
Pieter-Jan Briers 4ebba74b1f
Update submodule and fix ARM builds. 2020-06-09 00:17:11 +02:00
Pieter-Jan Briers a897be3c99
Remove stray usings in TransformableContainerComponent.cs
For some reason there was a using for ICSharpCode.SharpZipLib.Zip.Compression and this is problematic because removing the library in the engine will mean this file will stop compiling, so let's avoid that.
2020-06-08 20:05:46 +02:00
Pieter-Jan Briers 433198a123
Fix a bunch of compiler warnigns. 2020-06-08 14:44:11 +02:00
Pieter-Jan Briers 101335debe
Fix an but not all integration tests. 2020-06-08 14:40:03 +02:00
Pieter-Jan Briers 60a875456a
Merge branches '20-06-08-submodule', 'virtualize-netids', 'betterConstruction' and '20-06-08-addcomp-default' 2020-06-08 14:20:05 +02:00
Pieter-Jan Briers fb5179b3b6
Revert "Fix integration tests."
This reverts commit d2a38bdb00.
2020-06-08 14:14:37 +02:00
Pieter-Jan Briers d724c56d38
Adds round metrics for prometheus. 2020-06-08 01:18:40 +02:00
Clyybber 2995981b5e Better item construction 2020-06-07 19:42:00 +02:00
Leo acaa63493a
Re-adds ISuicideAct to microwave (#1085) 2020-06-07 17:00:05 +02:00
Víctor Aguilera Puerto 952fa9f7ed
Drop items on entering dead or crit states (#1082)
* Drop items on dead or crit
2020-06-07 16:48:53 +02:00
Memory 21c41f28ed
Refactor all references to AudioSystem functions now that the old ones are obsolete. (#1081)
Co-authored-by: FL-OZ <anotherscuffed@gmail.com>
2020-06-07 15:55:15 +02:00
Víctor Aguilera Puerto b8338bc64c Fix exceptions on round restarts due to accessing deleted entities' components 2020-06-07 15:32:38 +02:00
Pieter-Jan Briers 83f5c4ed04
Remove duplicate data from preset ID cards.
It is now fetched from the corresponding job.
2020-06-06 22:55:00 +02:00
Pieter-Jan Briers 19e58d4d0b
Fix access not being set to ID cards at round start. 2020-06-06 21:59:52 +02:00
FL-OZ cec86f0533
EntityStorage empties contents on destroy. (#1074)
Co-authored-by: FL-OZ <anotherscuffed@gmail.com>
2020-06-05 23:48:42 +02:00
Víctor Aguilera Puerto e1df008bce
Add conditional spawning component (#1069)
* Add conditional spawning component

* Remove null checks

* Remove leftover return

* Properly spawn items when game rule gets added

* Fix duplicate uids in saltern

* GameRules returns IEnumerable using yield.
2020-06-05 19:42:43 +02:00
FL-OZ 470f81fca1
fix microwave deleting entities at will (#1073)
Co-authored-by: FL-OZ <anotherscuffed@gmail.com>
2020-06-05 18:46:34 +02:00
FL-OZ fa9169e346
pda improvements (#1072)
Co-authored-by: FL-OZ <anotherscuffed@gmail.com>
2020-06-05 18:44:25 +02:00
Clyybber 892d6b425d
Fix #1016 (#1068) 2020-06-03 17:06:14 +02:00
Pieter-Jan Briers 0f43e5e6ad
Access refactor
Access is now done through a list of access lists, instead of the necessary/sufficient system that was extremely confusing.

Added a "deny" list so you can screw over sec.

Cleaned the API up so it all uses sets and such.

PDA now relays access read-only to fix edge cases.
2020-06-03 11:46:59 +02:00
Tyler Young 2eb715a9ca
Fix up midi stuff, support mild black midis (#1056) 2020-06-02 20:42:23 +02:00
20kdc a09131e817
Solar panels occlusion and tracking (#961) 2020-06-02 13:32:18 +02:00
chairbender 12f3b6bb7b
Use new command binding system supporting multiple bindings (#1043)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-05-31 23:32:05 +02:00
Remie Richards 2e38c194f7
IExamine can now limit certain details behind a 'details' range check. (#1039)
* IExamine can now limit certain details behind a 'details' range check.

* Comic's Review fixes.
- colour -> color. My ancestors are saddened by this.
- Can see wire panel opened/closed at any distance again.
2020-05-31 20:29:06 +02:00
Víctor Aguilera Puerto a9a43f25ce Remove unused IEntitySystemManager dependencies. 2020-05-31 19:58:49 +02:00
Víctor Aguilera Puerto 916a67d113 Fix typo 2020-05-31 19:56:44 +02:00
FL-OZ a295d205b1
Drink fixes part 2 eclectic boogaloo (#1052)
* Drink fixes part 2 eclectic boogaloo

* NOT THE NNEWLINES

* oops

Co-authored-by: FL-OZ <anotherscuffed@gmail.com>
2020-05-31 19:47:46 +02:00
FL-OZ 53900b79e9
Rename `SoundComponent` and refactor its wrong usages. (#1036)
* Rename `SoundComponent` and refactor its wrong usages.

* Replace verbose IoC grabs with EntitySysetm.Get

* unused depend

Co-authored-by: FL-OZ <anotherscuffed@gmail.com>
Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
2020-05-31 19:40:36 +02:00
FL-OZ 8db5adb387
Floor tile fixes (#1055)
Co-authored-by: FL-OZ <anotherscuffed@gmail.com>
2020-05-31 19:36:14 +02:00
Pieter-Jan Briers 53542a4d0c
Fix rotate CCW verb icon.
It was the CW one due to copy&paste.
2020-05-30 16:45:54 +02:00
FL-OZ aa26bdfcae
Rework Drink/Food/FoodContainer entirely (#1009)
Co-authored-by: FL-OZ <anotherscuffed@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-05-29 22:50:23 +02:00
FL-OZ 5b36a0d704
Sweeping changes/improvements to the microwave. (#997)
Co-authored-by: FL-OZ <anotherscuffed@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-05-28 22:28:35 +02:00
Pieter-Jan Briers 718b37fb2c
Fixes ServerPortalComponent spamming exceptions and crashing server if spawned manually.
Also makes the prototype abstract because it doesn't work straight up.
2020-05-28 20:09:14 +02:00
Pieter-Jan Briers 94917a63a6
Fix compiler warnings 2020-05-28 17:44:51 +02:00
Pieter-Jan Briers 785ecacb32
Remove file delay system.
It didn't work and was replaced by just spamming mouse updates.

It caused guns to fire twice on accident.
2020-05-28 17:44:51 +02:00
Tomeno 1fc20a4e14
Uses raytrace to clamp drop distance (#1017)
Co-authored-by: Tomeno <tomeno@lulzsec.co.uk>
2020-05-28 13:23:50 +02:00
FL-OZ 4c20a504a5
Add basic PDA/Syndicate Uplink. (#942)
Co-authored-by: FL-OZ <anotherscuffed@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-05-28 13:22:47 +02:00
Hugal31 0171c3bd93
Fix rifles making sound on spawn (#1021) 2020-05-28 13:02:06 +02:00
boiled-water-tsar 0e2f4fda31
Disallow welding of open lockers (#1011)
Co-authored-by: boiled water <hex0ffender@protonmail.com>
2020-05-28 12:31:16 +02:00
Leo 312ec5760c
Adds ISuicideAct and support for Held Item and Environmental suicides (#1010) 2020-05-28 01:05:12 +02:00
ComicIronic a77c1125ce
Fix laser collision logic wrt transparent entities (#1018) 2020-05-28 00:59:45 +02:00
Hugal31 ab6bc42a4a
Begin to use text macros (#914) 2020-05-28 00:58:57 +02:00
Pieter-Jan Briers 195c16d800
Wire hacking is now fancy.
1. new UI
2. wires are correctly randomized.
3. wires layouts
are shared across machines in the same round.
2020-05-27 15:24:07 +02:00
Pieter-Jan Briers 6a4ccebd48
You can now hide small items in potted plants. 2020-05-27 15:17:29 +02:00
Víctor Aguilera Puerto e5fb384edd Make EmitSoundOnUseComponent use the AudioSystem directly instead of SoundComponent 2020-05-27 11:33:16 +02:00
Víctor Aguilera Puerto 8a81f54a45 Makes InRangeUnobstructed use MapCoordinates. Fixes #1003
(Also updates Submoduke)
2020-05-26 14:23:25 +02:00
Daniel Thompson b53446bed1
Adds cells to stunbatons (#972) 2020-05-25 15:02:59 +02:00
Pieter-Jan Briers 29f21dfe58
Throwing improvements (#969) 2020-05-25 14:04:58 +02:00
Pieter-Jan Briers 8794381697
Secure lockers & locker welding. 2020-05-25 13:58:56 +02:00
Pieter-Jan Briers 1cd6edb1a2
Remove NoDoor and locking from the base locker component. 2020-05-25 01:03:44 +02:00
Alex Evgrashin fdda48ca56
Fuel and water tanks fixes #967, #868 (#992) 2020-05-25 00:29:09 +02:00
Pieter-Jan Briers d2a38bdb00
Fix integration tests. 2020-05-24 22:15:33 +02:00
Pieter-Jan Briers 26e07a627b
Fix DestructibleComponent sounds not playing. 2020-05-24 22:15:33 +02:00
Swept 8860ca6e2c
Crowbar, Wrench, Welder inhand (#990) 2020-05-24 21:44:22 +02:00
Swept 67143b1371
Toolboxes Update (#985) 2020-05-24 18:56:19 +02:00
Pieter-Jan Briers 08c165c703
Adds warp points to make moving around the map for testing easier. 2020-05-24 14:32:22 +02:00
zumorica 92f2ece654 Ignore client-side marker component on the server. 2020-05-24 14:29:16 +02:00
zumorica 3cf2948f82 Fix remnants of IAfterAttack 2020-05-24 13:47:13 +02:00
Víctor Aguilera Puerto 1c00bf2855
Merge pull request #865 from Zumorica/2020-04-28-tool-component
Tool refactor, multi tools
2020-05-24 13:42:02 +02:00
Pieter-Jan Briers 31263f8597
Fixes ghosts being affected by gravity.
Fixes #980
2020-05-24 11:40:49 +02:00
Pieter-Jan Briers 65d46899c0
Switch to saltern.
It's not done yet.
2020-05-24 01:50:56 +02:00
Pieter-Jan Briers ad10a59a8b
Fix bad prob value. 2020-05-24 01:40:39 +02:00
Pieter-Jan Briers bd92bdfbf8
Improve equip fail messages.
Message when trying to equip regular items to slots.
Mention ID slot specifically.
2020-05-23 22:57:25 +02:00
Pieter-Jan Briers 54b3783b03
Use mouse-focused popup for equip failure message. 2020-05-23 22:52:17 +02:00
Pieter-Jan Briers 82b7a09880
Fix exceptions from deleting pilot chair with player in it. 2020-05-23 22:51:41 +02:00
Pieter-Jan Briers 36b5326a37
Allow server to send cursor-located popup messages. 2020-05-23 18:45:47 +02:00
zumorica 934e69d6e3 Merge branch 'master' into 2020-04-28-tool-component
# Conflicts:
#	Content.Server/GameObjects/Components/AnchorableComponent.cs
#	Content.Server/GameObjects/Components/Construction/ConstructionComponent.cs
#	Content.Server/GameObjects/Components/Doors/AirlockComponent.cs
#	Content.Server/GameObjects/Components/Gravity/GravityGeneratorComponent.cs
#	Content.Server/GameObjects/Components/Interactable/Tools/CrowbarComponent.cs
#	Content.Server/GameObjects/Components/Power/PowerTransferComponent.cs
#	Content.Server/GameObjects/Components/WiresComponent.cs
2020-05-23 18:00:28 +02:00
Pieter-Jan Briers 3847b5260b
Fix exception if you attack and hit nothing. 2020-05-23 17:47:32 +02:00
Hugal31 6c2ad53b68
Add error popup message on equip failure (#955) 2020-05-23 17:27:57 +02:00
Clyybber 1ad9a10050
Fix #274 (#927) 2020-05-23 17:23:25 +02:00
Pieter-Jan Briers 05b910d9db
Slight cleanup to MoverSystem 2020-05-23 17:18:32 +02:00
Pieter-Jan Briers 0e8bb178f7
Fixes click-facing giving you NaN rotation if you interact with something at the exact same position as you. 2020-05-23 15:33:01 +02:00
zumorica 154ff47446 Add a few useful popups to welders. 2020-05-23 14:26:41 +02:00
zumorica eb3660b9cb Use DataField for tool quality enum 2020-05-23 14:20:26 +02:00
Pieter-Jan Briers ae344888d8
Fix bullets slowing down.
This one was pretty hilarious I gotta admit.
2020-05-23 13:07:46 +02:00
zumorica 3029e31e4a Merge branch 'master' into 2020-04-28-tool-component
# Conflicts:
#	Content.Server/GameObjects/Components/AnchorableComponent.cs
#	Content.Server/GameObjects/Components/Gravity/GravityGeneratorComponent.cs
#	Content.Server/GameObjects/Components/Interactable/Tools/CrowbarComponent.cs
#	Content.Server/GameObjects/Components/Power/PowerTransferComponent.cs
#	Content.Server/GameObjects/Components/WiresComponent.cs
#	Content.Server/GameObjects/EntitySystems/Click/InteractionSystem.cs
#	Resources/Prototypes/Entities/Items/tools.yml
2020-05-23 12:02:34 +02:00
chairbender 6a4d78cfac
Add interaction checks to all interactions (#923) 2020-05-23 11:27:31 +02:00
Pieter-Jan Briers cad59d2cb4
Fancy Verb Menu & Verb API Refactor (#928) 2020-05-23 03:09:44 +02:00
Pieter-Jan Briers 1cb1bd5a8f
Randomize wirecutter and screwdriver colors. 2020-05-23 02:14:11 +02:00
Pieter-Jan Briers 18ce80a43c
Merge physics rewrite 2020-05-23 01:26:43 +02:00
FL-OZ 613e1619fa satiates abrahams hunger for microwave fixes 2020-05-22 17:22:42 -05:00
FL-OZ 1e183ca5a8 GLOBAL SLUUUUURRRRP 2020-05-22 16:23:18 -05:00
zumorica 6daa1bcf27 Only play tool sound if the use goes through 2020-05-22 21:24:59 +02:00
Jackson Lewis e992d8fa43
Fix YAML prototype errors (#954) 2020-05-22 18:59:13 +02:00
Pieter-Jan Briers 126c5942a4
Merge branches '2020-05-18-midi' and '20-05-22-midi-update' 2020-05-22 18:02:24 +02:00
Pieter-Jan Briers 931c0a01ac
Emergency closets are now filled automatically.
Mostly.
2020-05-22 17:49:07 +02:00
zumorica d2d6c2cecd Merge branch 'master' into 2020-04-28-tool-component
# Conflicts:
#	SpaceStation14.sln.DotSettings
2020-05-22 11:31:18 +02:00
zumorica da128f13c4 End playing song when mob can't interact or player disconnects 2020-05-22 11:13:34 +02:00
20kdc 0cfd2f3bb2
Solar Panels (#936) 2020-05-21 21:08:03 +02:00
zumorica 9b0bc818c6 Be slightly more harsh with dropped batches count to prevent abuse. 2020-05-21 20:11:09 +02:00
zumorica fc0d54a6bb Playing black MIDIs stuns you. 2020-05-21 20:06:48 +02:00
zumorica cb391ec3d8 Merge branch 'master' into 2020-05-18-midi 2020-05-21 19:50:09 +02:00
Víctor Aguilera Puerto b270c69512
Merge pull request #911 from Zumorica/2020-05-13-stuns
Adds StunnableComponent, Stunbaton...
2020-05-21 19:48:19 +02:00
zumorica d3102dbf96 Remove server-side RefreshInHands, refresh them on component state update 2020-05-21 19:44:49 +02:00
zumorica 7cbd2fd8ce OnHitEntities now returns a bool and takes a read only list 2020-05-21 19:40:08 +02:00
zumorica bb31fcb227 Drop midi batch if it exceeds event limit. 2020-05-21 19:28:57 +02:00
zumorica 0235f6096e Sync sequencer tick correctly 2020-05-21 17:39:48 +02:00
zumorica 78aa4fb872 Use Sequencer, improve MIDI a lot 2020-05-21 15:20:37 +02:00
FL-OZ e1324fff19
Fix RND console keyboard sound being global. (#933)
* global keyboard

* e

* fixes microwave while im at it

Co-authored-by: FL-OZ <anotherscuffed@gmail.com>
2020-05-20 19:11:38 +02:00
zumorica 6db9ac7247 Improved timing 2020-05-20 17:48:36 +02:00
zumorica 731ab22568 Better timing 2020-05-20 17:13:49 +02:00
zumorica 400a71f8a1 More refactors 2020-05-20 15:15:17 +02:00
zumorica 1e91b9f075 Change properties to auto-properties 2020-05-20 11:05:55 +02:00
zumorica e5ddf6e309 Add tile prying component 2020-05-20 10:55:17 +02:00
zumorica f04b9c0a2f God fucking dammit 2020-05-19 14:52:45 +02:00
zumorica be6eba4f75 Add TryPryTile 2020-05-19 14:50:24 +02:00
Víctor Aguilera Puerto 312e8f17a5
Merge branch 'master' into 2020-04-28-tool-component 2020-05-19 14:19:45 +02:00
zumorica 06d2cc74ed Refactor a bunch of stuff. 2020-05-19 14:17:48 +02:00
zumorica 06c7030514 Some work 2020-05-17 12:58:54 +02:00
20kdc dd38d2f763 RotatableComponent: Fix "clockwise/counter-clockwise" verbs being swapped
"Clockwise" actually rotated it counter-clockwise and vice versa.

See response to https://discord.com/channels/310555209753690112/310555209753690112/711331672485789718 for confirmation that this is correct
2020-05-16 22:43:13 +01:00
zumorica 51f06c4142 Math -> MathF 2020-05-14 18:58:45 +02:00
zumorica 569a5b3c85 Add IStunModifier component interface 2020-05-14 18:03:08 +02:00
zumorica ebb49b3377 Document some stun code 2020-05-14 17:49:40 +02:00
zumorica b5cf3cf2da Adds stun status effect 2020-05-14 17:44:09 +02:00
zumorica a8275b4fae Sounds for stun baton 2020-05-14 16:13:25 +02:00
zumorica 2132ff41d4 In-hands are now refreshed when the prefix is changed 2020-05-14 15:44:05 +02:00
zumorica 1dd7eb8677 Stunbaton now has a 3/4 chance of applying slowdown instead of paralyze 2020-05-14 15:43:49 +02:00
zumorica 390127924b Add slowdown stun 2020-05-13 22:35:23 +02:00
zumorica 4e843358bd Remove useless bools 2020-05-13 22:13:22 +02:00
GlassEclipse 27d27f2b59
Body System Part 1 POGGERS!!! (#855) 2020-05-13 21:48:49 +02:00
zumorica 6428cdd596 Adds stunbaton 2020-05-13 20:21:03 +02:00
zumorica a524eca44b Action blocker for changing direction 2020-05-13 19:26:39 +02:00
zumorica c3c5b87fd5 Expose data on StunnableComponent 2020-05-13 19:10:29 +02:00
zumorica f968128af7 StandingStateHelper, StunSystem 2020-05-13 19:04:50 +02:00
zumorica b85161a35f Adds stuns 2020-05-13 16:53:01 +02:00
Pieter-Jan Briers c9ce38a6a7
Merge pull request #892 from FL-OZ/microwave_hot_fix 2020-05-13 02:10:56 +02:00
FL-OZ f3f7422129 , AudioParams.Default to beep sounds. should fix global but probably doesnt 2020-05-11 16:59:02 -05:00
zumorica 94491e9626 Cleanup code a little. 2020-05-11 15:40:33 +02:00
zumorica b1db8d1e7a Add WelderComponent back 2020-05-11 15:26:07 +02:00
Clyybber 7d58baa0e0 Fix #673 2020-05-11 13:54:31 +02:00
zumorica 6ae5e36a18 Merge branch 'master' into 2020-04-28-tool-component 2020-05-11 12:24:43 +02:00
Pieter-Jan Briers 1aa1867971
Merge pull request #899 from PaulRitter/wire_interact_check 2020-05-11 01:31:19 +02:00
Paul 531278ced1 added InRangeUnobstructed call to wire component 2020-05-08 14:01:33 +02:00
FL-OZ 40ad366636 Various hotfixes and touchups to the microwave.
- Stop a debug assertion from TryGetComponent on a deleted entity.
-  Add a dark overlay for when microwave is busy to UI.
2020-05-06 17:45:45 -05:00
Pieter-Jan Briers fe23fdb620
Merge branch 'master' into kitchen 2020-05-05 11:35:20 +02:00
FLOZ c8e2624390 lol 2020-05-04 19:59:43 -05:00
FLOZ b803bee2c0 Remove unncessary class dictionary and list. Fix meal prototype properties. 2020-05-04 18:35:36 -05:00
Hugal31 fbaafa8366
Add smart equip shortcuts (#873) 2020-05-05 00:39:15 +02:00
FLOZ 69b34e74ce Seperated Reagent item list and Solid item list to allow for vaporizing particular reagents at will. (also fixes a really nasty null reference exception because they shared the same list before D: ) 2020-05-04 15:16:16 -05:00
FLOZ 108bd36b8c And not a single "ToList()" went home to their family that day..... 2020-05-04 14:39:33 -05:00
FLOZ 4034458d26 Pretty up the microwave menu, add click sounds. Remove some unnecessary ToList() calls. Remove unnecessary IoC resolves. 2020-05-04 13:54:54 -04:00
FL-OZ d7d0bc71f9 Microwave is done. Added an easter egg recipe and made the cheeseburger recipe more sensible. 2020-05-03 23:58:29 -05:00
Pieter-Jan Briers e2677bab51
Wide attacks on space, remove UseOrAttack. 2020-05-03 16:03:52 +02:00
Víctor Aguilera Puerto 5d7514674e
Suspicion on the Space Station gamemode (#849) 2020-05-03 11:25:39 +02:00
Fouin ccbe4bc23f
Add pitch variations (#874) 2020-05-03 11:20:03 +02:00
FL-OZ 4f7deb8452 Next up timer buttons 2020-05-03 03:09:54 -05:00
FL-OZ 0f61c2fadf Microwave UI + solids implemented. 2020-05-03 01:34:00 -05:00
Jackson Lewis 1f0c72dd28
Gravity (#841) 2020-05-02 16:02:52 +02:00
FL-OZ dba0949c5b Add (not working) basis for allowing solids (entities) in recipes. 2020-05-02 01:29:20 -05:00
FL-OZ dd19466578 Microwave interface. 2020-05-01 23:34:04 -05:00
FL-OZ 13fba25edc A shit ton of microwave stuff i can't really explain this. 2020-05-01 17:19:04 -05:00
Víctor Aguilera Puerto f5657569e4
Fix drop range (#871) 2020-05-01 17:44:22 +02:00
FL-OZ a5fa184765 Reformat 'PoweredIdle' to 'Idle' 2020-05-01 03:38:48 -05:00
FL-OZ b2aca9a686 Add microwave visualizer. Clean up microwave code. 2020-05-01 03:37:21 -05:00
FL-OZ 5d4c0609ec ShadowCommander is MVP. 2020-04-30 23:07:27 -05:00
FL-OZ 93c3e86c9f Unfuck mostly everything. 2020-04-30 18:08:51 -05:00
FL-OZ 8e0185f892 Refactor "output" to "result" for recipes/prototypes.
Remove a debug recipe from meal_recipes.yml
Add food.yml for food related reagents: sugar, flour, etc.
2020-04-29 21:04:08 -05:00
zumorica 2c4354c95a Take welder into account. 2020-04-29 15:41:05 +02:00
zumorica 659d623784 Cleanup construction component 2020-04-29 15:34:49 +02:00
zumorica 995ed64789 Don't raise ToolAct, remove unused IToolAct 2020-04-29 15:28:03 +02:00
zumorica dd72f9d1a9 Actually raise ToolAct 2020-04-29 14:45:38 +02:00
zumorica 89e7ad4144 Correct comment 2020-04-29 14:27:06 +02:00
zumorica 8e10522bd2 Read enums only when reading from serialized data 2020-04-29 14:26:13 +02:00
zumorica 6dd0b00512 Fix bug where fuel wouldn't be consumed 2020-04-29 14:10:22 +02:00
zumorica 0a44490acb Change fuel consumption back to normal 2020-04-29 13:56:38 +02:00
zumorica ff5549a0d1 Finish refactoring tools. Add multitools. (as in multiple tools in one) 2020-04-29 13:48:32 +02:00
FL-OZ d0f18b2f66 Add Eris microwave RSI.
Cleaned up  the Microwave component code.
2020-04-28 19:15:43 -05:00
zumorica ca5638badf Start refactoring tools 2020-04-28 16:44:53 +02:00
FL-OZ 24842418c3 Rewrite recipe prototype.
Fix comparer in microwavecomponent.
2020-04-27 00:27:25 -05:00
FL-OZ 7e4d4bb1d4 Reformat the way recipe prototypes work to something sensible.
More work on Microwave component.
2020-04-26 23:14:02 -05:00
FL-OZ f76a087e91 Add meal recipe prototype class and yaml file.
Add bare bones MicrowaveComponent.
2020-04-26 15:44:20 -05:00
Pieter-Jan Briers 13a1be6462
Update submodule. 2020-04-26 00:53:23 +02:00
Pieter-Jan Briers 4c08e66254
Fix thrown items not colliding with walls. 2020-04-25 14:43:41 +02:00
Pieter-Jan Briers 8e91215d6f
Fix exception in drink food visualizer. 2020-04-25 14:40:57 +02:00
Víctor Aguilera Puerto bc82159878
Fix Drop interaction not being raised (#858) 2020-04-25 12:03:20 +02:00
Pieter-Jan Briers eb774e3d2d
Bar sign is now unshaded when lit. 2020-04-24 21:55:39 +02:00
Víctor Aguilera Puerto a4d2aa1ee1
Rename newly added YAML files to respect naming guidelines (#845) 2020-04-24 15:01:30 +02:00
Pieter-Jan Briers d1a672ba32
Fix crashes from MindComponent trying to spawn ghosts on deleted grids. 2020-04-23 16:04:41 +02:00
Pieter-Jan Briers 6cad18bff4
Potted plants from TG. 2020-04-23 13:56:16 +02:00
Pieter-Jan Briers 20481a0bb1
Bar signs implemented. 2020-04-23 00:58:43 +02:00
metalgearsloth 60ce5b5089
Add puddles / reagent spills (#743) 2020-04-21 20:23:12 +02:00
Sam 1ba222142a
Created SharedInteractionSystem + Partial Fix #782 (#833) 2020-04-21 16:58:31 +02:00
Víctor Aguilera Puerto 3fc4725df7
Add IEquipped and IUnequipped interfaces (#837) 2020-04-21 14:38:35 +02:00
Sam d5d21e7079
Chat fix (#832) 2020-04-21 00:26:53 +02:00
Pieter-Jan Briers 7aeb7d9cbc
Merge pull request #829 from Zumorica/2020-04-20-mind-examine-message 2020-04-20 16:21:10 +02:00
Pieter-Jan Briers 70161f35b6
Merge branches 'component-message-session' and 'message-submodule' 2020-04-20 16:02:09 +02:00
zumorica 3f3b7ca969 Add examine info toggle 2020-04-20 11:37:05 +02:00
Jackson Lewis 6a22f2629b Update content repo and RobustToolbox 2020-04-20 10:36:02 +01:00
zumorica 7803bb87bc Add examine message for minds whose player disconnected or ghosted. 2020-04-20 11:14:04 +02:00
Pieter-Jan Briers f6579918d9
Fix crash when moving after deleting the grid you were previously on. 2020-04-20 10:09:58 +02:00
Pieter-Jan Briers 65f5f71a39
Allow Supply of PowerGenerator to be VV'd 2020-04-20 09:45:40 +02:00
Pieter-Jan Briers 93c8007f5e
Merge branch 'master' into prediction 2020-04-18 14:07:02 +02:00
Pieter-Jan Briers 1578a32fa1
Put base movement in control of MovementSpeedModifierComponent.
PlayerInputMoverComponent was unsuitable because it gets added/removed dynamically and is specific to players (AIs don't use it).
2020-04-18 13:46:35 +02:00
Pieter-Jan Briers 028ca7a732
Remove hardcoded ghosting from MoverSystem. 2020-04-18 12:10:50 +02:00
Pieter-Jan Briers b137d4eaf0
Adds NoExamine SolutionCap. 2020-04-18 01:10:26 +02:00
Pieter-Jan Briers ce2d6175d2
Handle MindComponent deletion:
You now get turned into a ghost if it happens, or return to body gets disabled if you were already ghosted.
2020-04-18 00:39:22 +02:00
Pieter-Jan Briers 4125c36e8d
Allow mind transfer to entity if said entity is also the current visit target. 2020-04-18 00:38:43 +02:00
Pieter-Jan Briers c4f147bab4
Store original character name in mind. 2020-04-18 00:38:19 +02:00
Pieter-Jan Briers 2e57547ca2
Merge pull request #823 from Zumorica/2020-04-17-fix-my-shit 2020-04-17 21:01:37 +02:00
zumorica a408cdad0a Fix ControlMob not deleting ghosts 2020-04-17 19:28:08 +02:00
zumorica c2e328e5ae Turns out we don't need to spawn a timer to delete ghosts anymore 2020-04-17 19:23:06 +02:00
zumorica 02ccc6dc45 Only delete ghosts on return to body or unghost 2020-04-17 19:19:37 +02:00
zumorica 01e8e4784b Joining round as observer greys out return to body button 2020-04-17 19:16:42 +02:00
zumorica 73d754e2d2 Observers now get correct name on observe from lobby 2020-04-17 18:51:51 +02:00
PrPleGoo 7d6e6edcd1 Disable collision for things inside EntityStorageComponents + enable putting mobs in lockers 2020-04-17 15:40:17 +02:00
Pieter-Jan Briers 478fd35502
Merge pull request #802 from FL-OZ/round_end_screen 2020-04-16 22:33:38 +02:00
Pieter-Jan Briers 84d14ab185
Use new GetFromJson method for convenience. 2020-04-16 21:24:43 +02:00
Pieter-Jan Briers a1c9ea8bbd
GameTicker watchdog update integration. 2020-04-16 21:24:43 +02:00
scuffedjays 43b27e93bc Fix the duration timing again. 2020-04-16 13:07:58 -05:00
scuffedjays 7ae8f8429d Fixed calculation of round duration 2020-04-15 17:46:53 -05:00
FL-OZ e5847910c7
Merge branch 'master' into round_end_screen 2020-04-15 14:00:56 -05:00
scuffedjays 1605a50098 Changed duration to use TimeSpan.
Using actual round realtime span to determine round length.
2020-04-14 23:26:37 -05:00
zumorica e9100db219 LightBulbs now break when thrown 2020-04-13 01:44:05 +02:00
Pieter-Jan Briers 0f554996ff
Merge pull request #798 from PrPleGoo/DecimalReagents
Decimal reagents
2020-04-12 23:04:24 +02:00
PrPleGoo d261a21b57 Fix up SolutionComponent 2020-04-12 14:44:14 +02:00
PrPleGoo 7d72e672fd Merge branch 'master' into DecimalReagents 2020-04-12 14:37:36 +02:00
Pieter-Jan Briers 56d6720026
Move part of stack code to shared.
Meaning that ExposeData is in shared, fixing #809
2020-04-12 01:15:16 +02:00
Pieter-Jan Briers 1695787bab
Merge pull request #807 from Zumorica/2020-04-10-proper-ghost-hiding
Ghosts now make use of the new "entity visibility" engine functionality
2020-04-12 01:00:42 +02:00
zumorica c41eb3ba10 Remove unused visibility flags 2020-04-10 17:13:55 +02:00
Pieter-Jan Briers dc9f8d551b
Merge pull request #805 from Zumorica/2020-04-09-comms-console-roundend
Adds working communications console that ends the round
2020-04-10 17:02:49 +02:00
zumorica 683644eec5 Ghosts now make use of the new "entity visibility" engine functionality 2020-04-10 16:28:14 +02:00
zumorica c19035fccc Use TimeSpan instead of an int for the countdown time 2020-04-10 13:37:13 +02:00
Víctor Aguilera Puerto 47c3258861
Update Content.Server/GameObjects/EntitySystems/RoundEndSystem.cs
Co-Authored-By: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-04-10 13:28:28 +02:00
Pieter-Jan Briers aff9f18bc8
Merge pull request #803 from Injazz/bartending
Bartending tricks and some revamping on chemistry components
2020-04-10 11:54:40 +02:00
scuffedjays 3ce50879b7 New struct for basic round end info per player. 2020-04-10 01:37:14 -05:00
zumorica c55a4ffbf4 Countdown is now 4 minutes 2020-04-09 20:31:28 +02:00
zumorica 3c795ad283 Use TimeSpan instead of DateTime in RoundEnd and Comms Console. 2020-04-09 20:28:22 +02:00
Injazz b73b8cf172 fixes 2020-04-09 20:38:31 +05:00
PrPleGoo 20cb9b92ab Merge branch 'master' into DecimalReagents 2020-04-09 17:24:22 +02:00
Injazz 6a08647375 uncomments setter 2020-04-09 16:49:19 +05:00
Injazz 8f580ecc1b Visually updates contents of the beaker
also adds new syringe sprite from eris
also adds colors to ALL reagents
2020-04-09 16:43:56 +05:00
zumorica 3ba2e5de80 Speech bubbles! 2020-04-09 03:31:40 +02:00
zumorica 5027367988 Add localization to deadchat 2020-04-09 03:08:06 +02:00
zumorica c0bdfdf123 Remove CanReturnToBody property from SharedGhostComponent 2020-04-09 03:02:21 +02:00
zumorica 83e9688133 You can now cancel the timer (recall) 2020-04-09 01:43:28 +02:00
zumorica 64eafde0c3 Adds working communications console that ends the round 2020-04-09 00:28:56 +02:00
PrPleGoo 9194694085 Fix initialization change 2020-04-08 19:43:16 +02:00
PrPleGoo a484b6fd52 Implementation of ISelfSerialize 2020-04-08 19:07:33 +02:00
Injazz 4174891c87 some fixes
removes unused interface from DrinkComponent
adds capability to fit inside dispensers for TransformableContainer
removes stomach component from character setup dummy
2020-04-08 17:12:00 +05:00
scuffedjays 02f9c5259c Add foundation for Round End Summary Screen.
Adjust GamePreset class, added title alongside description.
2020-04-08 06:07:54 -05:00
Injazz 1b8215ee49 commented out description setter 2020-04-08 16:06:24 +05:00
Injazz d400f77129 Chemistry revamp and bartending features
-Ability to mix drinks to create cocktails with shiny icons
-New Chemistry System which can relay chemistry events to corresponding components
-moved some solution logic from Shared to Server
-fixed some weird stuff with DrinkComponent
2020-04-08 15:53:15 +05:00
PrPleGoo db83789d05 Merge remote-tracking branch 'upstream/master' into DecimalReagents 2020-04-05 11:37:03 +02:00
PrPleGoo 4e0242d47c Replace decimal with ReagentUnit 2020-04-05 11:36:12 +02:00
zumorica a0d114c672 Ghost sprites and a bunch of fixes 2020-04-05 02:29:04 +02:00
zumorica 0902844457 Merge branch 'master' into 2020-03-03-g-g-g-g-g-g-g-g-ghooooosts 2020-04-04 17:17:11 +02:00
Pieter-Jan Briers eb99b3c0fd
Merge pull request #792 from JiimBob/power-checks
Power checks
2020-03-30 17:43:33 +02:00
zumorica d28af07fce Ghost component implements IActionBlocker 2020-03-30 01:18:28 +02:00
zumorica 24c5909c43 Ghosts retain their prior name, before defaulting to username. 2020-03-30 01:16:44 +02:00
zumorica a07c407f2e Deadchat 2020-03-30 01:15:43 +02:00
zumorica aba3b0217e Moving when dead ghosts you 2020-03-30 01:15:23 +02:00
zumorica 16353a89e6 Default interface implementation for IActionBlocker (defaults to true) 2020-03-30 01:15:03 +02:00
zumorica 91f039d2af Merge branch 'master' into 2020-03-03-g-g-g-g-g-g-g-g-ghooooosts 2020-03-28 23:48:00 +01: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
Pieter-Jan Briers f790eeb34d
RaisePredictiveEvent works.
Needs sequence numbers fixed.
2020-03-25 17:53:50 +01:00
Pieter-Jan Briers 705aeceba6
Need to merge this 2020-03-25 11:16:57 +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
PrPleGoo 539214b1ad Some more int -> decimal conversions. Changed the use of the Solution constructor. 2020-03-21 16:22:35 +01: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
PrPleGoo dc66621804 Replaced static Rounders with an impleneted interface 2020-03-14 14:04:08 +01:00
PrPleGoo f05fdfb5fc Changed all int and some float things in Reagent code to Decimals 2020-03-14 12:55:07 +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
zumorica 7f19381bec Ghost command, some other stuff 2020-03-03 20:37:26 +01:00
zumorica 055f09d501 Button to return to body 2020-03-03 19:10:25 +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 4b1fd4cfd1
Don't unvisit before transferring mind (#760) 2020-02-29 16:09:03 +01:00
Víctor Aguilera Puerto 60d6b4af7d
You can now pickup items inside obstructions (#759) 2020-02-28 17:52:18 +01:00
Víctor Aguilera Puerto 2df0f884ba
Fix bug where InRangeUnobstructed wouldn't check for hard collid… (#748)
* Check for hard collidables too.

* ...and that's why you don't code at 7 AM!

* fugg
2020-02-28 16:29:45 +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
Pieter-Jan Briers 58ab7631c2
Give every job their fancy ID types. 2020-02-24 16:58:25 +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
Víctor Aguilera Puerto 090dd8cee8
ControlMob verb and command (#724)
* ControlMob verb and command, mobs have MindComponent by default

* Use IActorComponent instead of MindComponent for User entity.
Fixes using Control Mob while aghosting/visiting an entity.

* Use static Loc class
2020-02-24 03:49:40 +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
Rohesie ffe55648b6
BaseTurfs (#699)
* tweaks

* Baseturfs

* dotnet messages

* indentation

* comment

* Change requests

* Smaller diff

* Diff
2020-02-23 00:30:36 +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
Acruid e719745b10 Removed the Sender object from events. If you needed this field, add it to the event class. 2020-02-19 14:39:00 -08:00
Acruid c51533686b Updates the Content EntitySystems with the changes to the event API.
Visual Studio wants to update the version of the solution, and change some GUIDs around.
2020-02-18 19:43:54 -08:00
moneyl 5f030cdf93
Improve addai error handling and help message (#708)
* Improve addai error handling and help message

Fix client crash from giving addai an invalid processorId argument and improved it's help message to describe each parameter.

* Only IoC resolve when addai is run

Makes the code simpler. No need to cache it since it's going to be run so infrequently.
2020-02-17 00:21:15 +01: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
Qustinnus de094ddacc
Fixes the direction humans turn to when throwing something (#686)
* Fixes the direction humans turn to when throwing something

* shorter
2020-02-13 16:21:29 +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
Víctor Aguilera Puerto f8a64bcd5c
Prevent items from being dropped across impassable entities (#670) 2020-02-12 00:01:44 +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
Pieter-Jan Briers 16016461c1
Merge branches 'kestrel' and '20-02-09-kestrel' 2020-02-09 23:20:23 +01:00
Tyler Young f34d447bde
Update MoMMILink to use Kestler StatusHost handlers. 2020-02-09 09:25:48 -05:00
adrian 253972d529 Fixes placing objects on closed lockers (#658) 2020-02-09 10:42:12 +01:00
Pieter-Jan Briers 913b4d97a1
Allow more lobby parameters to be configured. 2020-02-08 21:23:37 +01:00
Profane McBane c7043d20b1
Fixes melee combat (#655) 2020-02-08 20:46:45 +01:00
moneyl a2a3e5e2e4
Fix issues with exploding items from own hand (#645)
* Fix crash in CameraRecoilComponent from NaN values

Doesn't proceed with camera shake if either component of recoil is NaN.

* Log NaN recoil value in CameraRecoilComponent

* Fix ExplosionHelper passing NaN recoil values when exploding from hand

With other commits CameraRecoilComponent now won't crash from NaN recoil values. Still want to fix this so explosions shake the camera. Just sets a value slightly greater than 0.0 for distance if it is (0.0, 0.0)
2020-02-08 20:46:12 +01:00
Pieter-Jan Briers eb7c80ba7a
You can no longer place unless you are in admin or sandbox. 2020-02-08 20:45:02 +01:00
Pieter-Jan Briers 6d9f2b5a68
Fix attack sounds playing globally. 2020-02-08 18:26:01 +01:00
Markus W. Halvorsen 595ffb3237
Clamp out of range item drops (#631) 2020-02-08 15:32:21 +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
Tad Hardesty 89a4265dda
Change player's facing when they click on something (#598) 2020-02-07 17:54:56 +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
ike709 dea2be8321
Fixes "joingame" command allowing players to join before round s… (#595) 2020-02-06 16:15:39 +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
Pieter-Jan Briers 2ec493e2af
Combat mode improvements.
You now need to hold the mouse for 0.15 seconds in combat mode to actually do an attack.

Otherwise it's regular item interaction (for now).
2020-01-26 03:38:51 +01:00
Acruid 59500e5278 Raycast API changes. 2020-01-25 13:55:29 -08:00
Pieter-Jan Briers ca57749a3b
Remove bad use of GetAssemblyByName. 2020-01-25 20:39:39 +01:00
Pieter-Jan Briers fbe7533d4b
Run database migrations in parallel with the rest of game startup to improve load times. 2020-01-25 16:16:48 +01:00
Acruid a692899f5b GridCoordinates API changes. 2020-01-25 01:39:14 -08:00
Acruid a86363a6d2 API changes, renamed SpawnEntityAt to SpawnEntity. 2020-01-24 16:10:48 -08:00
Acruid 4ab7f1dcb3 Removed the `StateType` property from every component. This field was completely unused except for a debug assertion. 2020-01-24 14:10:36 -08:00
DamianX 514d05b237 Added postgres support (#556) 2020-01-24 17:25:01 +01:00
Tad Hardesty 7bf06a59d4 Expend cables when placing them (#547) 2020-01-24 02:52:44 +01:00
Pieter-Jan Briers 11d47cc67a
Remove an unused field. 2020-01-24 00:57:08 +01:00
DamianX 664acb140e Normalize wander AI's direction vector (#549) 2020-01-23 22:53:07 +01:00
Víctor Aguilera Puerto 09a27df6db Makes players spawn on job spawn markers on roundstart (#543)
* Adds job type to spawn points, makes players spawn on job spawn markers on roundstart

* Update Content.Server/GameObjects/Components/Markers/SpawnPointComponent.cs

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

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-01-23 17:31:47 +01:00
moneyl 1996893a26 Fix UseDelayComponent (#546)
Currently if this component is present the delay timer is started but it doesn't actually prevent use interactions.

To test this bug, do the following:
1. Set the delay for [bike_horn](https://github.com/space-wizards/space-station-14/blob/master/Resources/Prototypes/Entities/items/bike_horn.yml#L25) to something large like 5.0 that'll make the effect obvious
2. Use the bike horn with the z key. The delay anim will play properly but you'll still be able to spam the honk.
2020-01-23 01:37:07 +01:00
Víctor Aguilera Puerto 83b2e59910 Fix bug where placing items in PlaceableSurfaces didn't cause a… (#544)
* Change variable name in some interactions

I definitely didn't copy-paste some stuff back then, absolutely not.

* Fix bug where dropping items in tables didn't cause the drop interaction
2020-01-22 23:09:36 +01:00
L.E.D 8f04ce894f Use Delay Component (#540)
* use delay timer

* remove accidental using

* and remove accidental newline because i don't proofread my code

* compatibility with HUD cooldown
suggested changes

* get out of here

* suggested changes

* change to seconds from milliseconds

* remove redundancy
2020-01-22 23:08:14 +01:00
Pieter-Jan Briers 559367ee55
Content.{Client,Server} are now Exes that can be ran. 2020-01-22 20:17:32 +01:00
moneyl 930fb331db Fix crash / debug assertion failure from explosions (#535)
When explosions are spawned they grab all entities in range and interact with them. They don't check if entities are deleted before doing so which can cause a crash. 

To reproduce, place several grenades on the ground, pick one up and detonate it on top of the others so they detonate as well. The debug assertion in ContainerHelpers.IsInContainer will fail due to one of the accessed entities having been deleted.

This fixes that by ignoring deleted entities when making explosions.
2020-01-21 18:13:57 +01:00
moneyl eb7f592154 Add more client/server only components to registerIgnore lists (#534)
Fixes a few warnings from components not added to the ignore list on client/server.
2020-01-21 18:12:50 +01:00
Pieter-Jan Briers 42066fc8a1
Actually use InventoryComponent.CanEquip from Equip. 2020-01-20 22:13:47 +01:00
Pieter-Jan Briers ba88b2b1da
Update NuGet dependencies.
EFCore excluded because I'm still using .NET Core Runtime 3.1.0 instead of 3.1.1
2020-01-20 20:44:36 +01:00
Pieter-Jan Briers 73693b88f6
Don't accidentally commit your testing cvar change. 2020-01-20 18:48:54 +01:00
Pieter-Jan Briers 425b85d5a7
Fix spawning of non-clothing items via starting gear. 2020-01-20 10:30:07 +01:00
Pieter-Jan Briers 75aa9541e0
Equip clothing to preview dummies in the lobby. 2020-01-20 10:30:06 +01:00
Pieter-Jan Briers 05ff4e0956
Implement human pockets and ID card slot correctly.
Pockets & ID need uniform equipped. Pockets accept any sufficiently small item.
2020-01-20 10:30:06 +01:00
Acruid 7c562af0aa Nullspace map entity is created every time the client joins the server. This fixes #520. 2020-01-20 00:36:34 -08:00
Pieter-Jan Briers aaf0b7a645
Game ticker now has a job assignment system. 2020-01-19 19:08:35 +01:00
Pieter-Jan Briers fc2d53eb4f
Adds preference unavailable setting to profiles. 2020-01-19 18:33:22 +01:00
Pieter-Jan Briers ce794c4dac
Move access levels to prototypes.
Also adds captain & ID computer access levels.
Fixes ID computer not saving access changes correctly.
2020-01-19 18:30:09 +01:00
Pieter-Jan Briers edf280e2df
Improve ID card names to be better.
And more inline with SS13.
2020-01-19 18:27:16 +01:00
Pieter-Jan Briers f86ad6175e
Basic implementation of jobs in the character profile. 2020-01-19 09:42:26 +01:00
ShadowCommander e0aaab56e3 Implement StorageButton on HandsGUI and click empty hand to swap… (#517)
Also moved duplicate sprite view code to ItemSlotManager
2020-01-18 03:41:47 +01:00
DamianX a4e369e629 added Character Setup (#511)
* added Character Setup

* whoops

* reverted unrelated changes

* Made everything work post-rebase

* Removed unused PreferencesChanged event

* nope, don't need this

* HumanoidProfileEditorPanel -> HumanoidProfileEditor

* Set initial data for hair pickers

* Fixed nullable warning

* Renamed LooksComponent -> HumanoidAppearanceComponent

* Renamed LooksComponentState -> HumanoidAppearanceComponentState

* Final renaming maybe

* Use a human-like dummy instead of a real human

* Change preferences structs back to classes
2020-01-18 01:54:13 +01:00
DamianX c20ba98a1e Research machinery requires power (#516)
* Fixed ResearchPointSourceComponent properties

* ResearchPointSourceComponent requires power

* ResearchServerComponent requires power
2020-01-17 15:34:40 +01:00
DamianX c4ea6e53e8 Use EFCore to store preferences (#506)
* Use EFcore to store preferences

* Fixed nullabilty warnings
2020-01-15 15:10:18 +01:00
Pieter-Jan Briers 1856cb079c
Fix a couple compiler warnings. 2020-01-15 14:51:01 +01:00
Pieter-Jan Briers 56f1233967
Hair style improvements:
1. made the magic mirror actually reflect your current hair state when you open it.
2. Made magic mirror one window.
3. Use color sliders for magic mirror.
2020-01-15 14:28:46 +01:00
Pieter-Jan Briers 9c0a670525
Fix flashlights not updating status when battery inserted. 2020-01-12 02:02:58 +01:00
Pieter-Jan Briers 92da411ea5
Flashlight wattag is now a VV-able variable. 2020-01-12 02:01:00 +01:00
Acruid ca58afd81b Added a Collidable Component to the existing station grind in StationStation. 2020-01-11 15:15:11 -08:00
Acruid 32103979ed CollidableComponent and ICollideableComponent namespace was changed in the engine.
Minor code cleanup.
2020-01-11 14:12:20 -08:00
Acruid 51f7f14c08 Right now ShuttleControllers add the collision component to the Grid Entity.
Adds Grids to the collision group.
2020-01-09 18:29:09 -08:00
Pieter-Jan Briers 411c23c46e
Item status! 2020-01-09 00:28:04 +01:00
Pieter-Jan Briers 33782ed7f3
Fix ranged weapon fire rates being stuttery.
Now we just send a fire message to the server every frame. Absolutely terrible!
2020-01-09 00:28:04 +01:00
Pieter-Jan Briers 39d99485eb
Fix laser weapons always hitting yourself. 2020-01-09 00:28:03 +01:00
Acruid f73824adcb Prevents the MoverSystem from overwriting the MoverComponent on an entity.
Adds the new ShuttleControllerComponent, a custom IMoverComponent that moves the parent grid when controlled by a mind.
2020-01-08 15:17:00 -08:00
Acruid 8a49546add Added the NoDoor flag to storage components, so that the open/closed state is synced with the lock/unlock.
Added the glorious Pilot Seat.
2020-01-03 17:49:17 -08:00
Acruid 89745202f5 Actors inside storage containers are now centered on the container. 2020-01-03 17:28:16 -08:00
Acruid d98ce413bb Added a flag to storage containers to allow the contents to be drawn when the container is closed. 2020-01-03 16:00:30 -08:00
Acruid e2e5982d68 Adds a verb to toggle open/close a storage.
Adds a verb to toggle lock/unlocked a storage.
Adds the ability to lock a storage closed.
2020-01-03 13:38:58 -08:00
Acruid b44ca8df8d Renamed GridCoordinates.Nullspace to GridCoordinates.InvalidGrid, because it has nothing to do with Nullspace anymore. 2019-12-29 18:12:56 -08:00
Pieter-Jan Briers 0c9a95bc54
Update submodule.
Remove now-unecessary Initialize() calls on added components.
2019-12-22 21:43:34 +01:00
DamianX f19795edaf Added preferences backend (#465)
* Added preferences backend

* Gender -> Sex

* ClientPreferencesManager properties

* Username validation

* Fixed client init

* WIP db

* Actually working sqlite db

* Dropped shitty sqlite libraries, dropped DbUp, added MigrationManager

* Added profile deletion, test

* Docs, sanity, tests, cleanup

* Cleaned up profile and appearance, fixed running on .net core

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2019-12-22 13:47:34 +01:00
Pieter-Jan Briers c1b9bb348d
Fix some Robust.Server namespaces in Robust.Shared. 2019-12-22 13:41:04 +01:00
Acruid ece6e0a833 Map & Grid Entities (#493)
* Client & Server load with new scene hierarchy.

* Engine Update.
2019-12-22 13:23:38 +01:00
Acruid c2c512a7e3 Adds base.Initialize() calls to components that were missing them. 2019-12-19 11:35:17 -08:00
Pieter-Jan Briers 1e696edcff
Use C# 8. 2019-12-17 16:09:10 +01:00
Acruid 1fe09c580c Entities now require a location when being spawned. 2019-12-16 21:44:24 -08:00
Acruid 72cff220cf Wires are now broken in explosions, and drop cables.
Using the wire cutters on a wire drops a cable.
Fix bug where bullets raise an exception when the hit object deletes itself.
2019-12-15 19:58:24 -08:00
Pieter-Jan Briers a9f148c04e
Let's pray it all works 2019-12-16 00:46:09 +01:00
DamianX 63b98f26a6 Fixed a bunch of unused variables warnings (#492) 2019-12-15 14:12:23 +01:00
Pieter-Jan Briers 95fe7fdd25
Reduce sprint movement speed. 2019-12-11 07:23:11 +01:00
Acruid 9c9984a40a
EventBus Refactor (#490)
* API changes for the new EventBus.

* Update Engine Module.
2019-12-08 19:52:29 -08:00
Pieter-Jan Briers 7f188b0f44
Disable sprinting.
Now you always sprint.
2019-12-07 17:16:56 +01:00
Pieter-Jan Briers 689d16ee65
Outlines moved to InteractionOutlineComponent, now change color when in interaction range. 2019-12-06 02:08:17 +01:00
moneyl 4cf8e18d1f Fix bug with chemical reactions which cause other reactions (#475)
SolutionComponent.CheckForReaction only checks for a reaction once, meaning that if a reaction generates reagents that create a solution that's valid for another reaction, that second reaction doesn't occur. This fixes that by repeatedly checking for a reaction until no more occur.
2019-12-04 13:51:05 +01:00
L.E.D fac91af34d new layers (#483) 2019-12-01 15:20:50 +01:00
moneyl 542428df32 Fixes the player being able to use the chem dispenser when they'… (#480)
* Fixes the player being able to use the chem dispenser when they're dead

Adds a check to `ReagentDispenserComponent.OnUiReceiveMessage()` that checks if the players `SpeciesComponent` has a damage state that prevents them from interacting with the chem dispenser.

* Switch to use ActionBlockSystem instead of checking SpeciesComponent directly
2019-11-29 17:04:36 +01:00
ShadowCommander adaf0ade52 Fix crash on restart when a Airlock is opening/closing (#481)
* Fix crash when _appearance is null

Added a function to error check and set _appearance.SetData.

Added cancellation token which should stop the Timer, but doesn't seem to right now.

* Fix missing CancellationToken causing a crash

This delay would delay _appearance.SetData until after _apppearance was set to null when the component was removed causing a null reference exception.
2019-11-29 16:53:26 +01:00
Pieter-Jan Briers 4265fac7b8
Welders now play sounds when toggled. 2019-11-29 16:46:25 +01:00
L.E.D c213fa8cdf object break sounds (#477) 2019-11-28 14:37:03 +01:00
Acruid d549c44f95 Shared IMap/Map class removal (#467)
* Fully removed the Map and IMap class.

* Submodule update to sibling engine commit.
2019-11-26 23:16:36 +01:00
L.E.D 9cfa0d447a Stack popups (#470)
* stack popups

* Update Content.Server/GameObjects/Components/Stack/StackComponent.cs

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

* change wording
2019-11-26 20:17:28 +01:00
Víctor Aguilera Puerto fedc0ad71c Adds playable instruments, IDropped, IHandSelected and IHandDese… (#368)
* Instrument test.

* Midi stuff

* Some more work

* This actually works now!

* update

* Midi Audio works!

* Lots of stuff, and cool interfaces for items

* Update

* Fix a few things

* It just works

* Move textures to another folder, remove placeholder description from instruments

* Fix warning

* Use renderer enum

* Instruments now use DisposeRenderer method, and send MidiEvents as they receive them. Deletes InstrumentSystem whoo.

* Fix incorrect sprite paths

* Instruments take midi file size check into account when enabling/disabling midi playback buttons

* Fix crash when pressing drop on empty hand.

* Use new renderer return values for midi/input

* Xylophones are no longer handheld instruments, fix their sprites.

* Use new API

* Remove nfluidsynth from solution

* Timing information

* Use IGameTiming.CurTime for timestamps instead
2019-11-25 00:11:47 +01:00
Ephememory d63c879404 Crowbar floor tiles and placement (#429)
* Adds tile removing behavior to CrowbarComponent.
Add FloorTileItemComponent.
Add genhit.ogg
Add tile.png for testing

* fixes

* Gives ContentTileDefinition a default value for tile item to drop.
Adds a few more tileitems.

* Changes per review request

* move stack.use and if statement
2019-11-23 22:10:05 +01:00
dylanstrategie 17b31c417b Rejunevate now satiates hunger and thirst plus code quality (#456)
* Change Rejunevate to satiate hunger and thirst whenever applicable

* More progress

* One more before rebase

* Shit

* Bop obsolete using

* Verb will not show on non-applicable objects
2019-11-23 21:57:02 +01:00
dylanstrategie 421847e9d3 Add filled toolbelt variant for easy engineering (#458)
* Add filled toolbelt variant for easy engineering

* Petty newline
2019-11-23 21:56:32 +01:00
DamianX 3a7a3a89ba Added hair, facial hair, magic mirror (#452)
* Added hair, facial hair, magic mirror

* I forgot to commit the textures lmao

* Use shader to fix hair color blending
2019-11-23 21:55:46 +01:00
moneyl b89615342e Fix exception in ReagentPrototype caused by IMetabolizable (#451)
* Fix exception in ReagentPrototype

Due to client trying to access concrete implementations of IMetabolizable that are in Content.Server. This fix checks to see if the prototype is being loaded by the client through reflection. I don't want to move the prototype completely into Content.Server since it's useful for the client to view descriptions and values of reagents without needing to send that data from the server.

* Make fix slightly more explicit

Now it will only load the metabolizable when in Robust.Server, instead of it being anything that's not Robust.Client.

* Add IModuleManager and ModuleManager

Provide simple way to check if shared code is being run by the server or the client

* Change ModuleManager implementations to not require assembly name comparison

Now just has ClientModuleManager registered to client, and ServerModuleManager registered to server.

* Change IModuleManager functions to properties

* Fix failing tests.

This was failing because the tests weren't initializing IoC. Simply using RobustUnitTest wasn't enough because that doesn't initialize content either. I did some cleaning up so now content IoC is registered via ContentUnitTest.
2019-11-23 21:55:31 +01:00
dylanstrategie 4198b6dc4e Medkits are now a container plus filled version (#457) 2019-11-23 21:39:12 +01:00
Remie Richards 0cf34d2d26 Server-side GlobalVerbs now work when used (#455) 2019-11-23 20:11:50 +01:00
ShadowCommander 1580750606 Implement Cargo Console (#413)
* Implement Cargo Console

Add to CargoConsoleComponent GalacticBank information for syncing Bank Account Balance.

Implement CargoOrderDatabase on the server side and a list of orders in the CargoOrderDatabaseComponent on the client side. This makes it easier to change data on the server side but also utilize the state syncing between components.

Implement GalacticMarketComponent.
Only productIds get sent. Both client and server create their lists from YAML.

Implement basic spawning of items from approved orders in CargoOrderDatabase.

* Finish Cargo Console

Add validation to make sure Order Amount is one or more.

Implement approve and cancel buttons to CargoConsoleMenu orders list row.

Add price to CargoConsoleMenu product list row.

Implement CargoOrderDataManager to consolidate CargoOrder lists.

Refactor CargoOrderDatabaseComponent to use CargoOrderDataManager instead of storing duplicate lists.

Implement canceling orders.
Implement approving orders.

Fix sprite links.

Implement Cargo Request Console.
2019-11-22 01:37:14 +01:00
metalgearsloth 58709d2d26 Add power cell and weapon chargers (#430)
* Add power cell and weapon chargers

Functionality's similar to SS13. The cell charger won't show the discrete charging levels because effort to not make it spam appearance updates over the network.
There's some stuff I wasn't sure on:
1. Updating power? Particularly around fixing rounding
2. Duplicating the full and empty sprites as I couldn't figure out a way to not have AppearanceVisualizer throw if the state isn't found
3. I made a BaseCharger abstract class under the assumption that when a mech / borg charger is added it would also inherit from it.
4. GetText currently isn't localized

* Address PJB's feedback

Updated the BaseCharger
* Change nullref exception to invalidoperation
* If the user doesn't have hands it will just return instead
2019-11-21 23:48:56 +01:00
Ephememory 94c00dda95 Fix various bugs with construction (#446) 2019-11-21 23:46:37 +01:00
moneyl 3ab8036363 De-hardcode chemical metabolism of StomachComponent (#437)
* Move chemical reaction effects into Chemistry/ReactionEffects/ subfolder

* Replace hardcoded StomachComponent metabolism with IMetabolizable

The benefits of this approach are that reagent metabolism effects are not hardcoded into StomachComponent, and metabolism effects can be more easily chained together in yaml prototypes, and reagents can have different metabolism rates. One problem with this approach is that getting metabolism rates slower than 1u / second is impossible. Implementing #377 should resolve that problem.

* Fix DefaultFood and DefaultDrink so they remove reagent regardless of Hunger/ThirstComponent presence

Previously if neither of those were present the reagents wouldn't be removed from the stomach. This fixes that.

* Additional comment on function

* Make metabolizer interface implementations explicit

Also removed some unused using statements

* Make StomachComponent._reagentDeltas readonly

* Fix misleading variable names and docs for metabolizables

Changes one of the arguments for `IMetabolizable.Metabolize()` to be called `tickTime` instead of `frameTime` to more accurately reflect it's purpose. It's not really the frametime, but the time since the last metabolism tick. Also updated and expanded the docs to reflect this and to be more clear.
2019-11-21 23:24:19 +01:00
Ephememory 1f177a044d Fix flashlight PointLight radius (#438)
* Add radius to `HandheldLightComponent.cs`

* Revert handheldlightcomponent and simply specify radius to flashlight in yaml.
2019-11-21 15:23:09 +01:00
Pieter-Jan Briers 96b8ded8af
Make melee weapons use raycasts. 2019-11-17 21:46:39 +01:00
ancientpower 32bd23f85e fixes power provider range calculation (#442) 2019-11-17 19:56:54 +01:00
ZelteHonor 447db2e458 Basis for the job system (#434)
* Add basic yaml Jobs file

* Add Job Prototype

* Rename Jobs to Job

* Remove BaseJob

* Add the Job class child of Role

* Add code for spawning as an assistant. Not actually working, the job prototype can't be found.

* Fix role instead of job left in yaml

* Add starting gear support for job and the starting gear for assistant as an exemple

* Link job with starting gear in yaml

* Better naming and some error handling

* Tweak error handling
2019-11-17 17:18:39 +01:00
metalgearsloth 480d3b26c4 Make nutrition less harsh (#439)
* Make nutrition less harsh

Also fix the accumulator because why did I put that in the loop.
Decay rates decreased and made drink thirst levels same as hunger for now.

* Also fix stomach frametime accumulation
2019-11-17 02:26:31 +01:00
ZelteHonor b2e2aef78d Rider static analysis (#433)
* Non-accessed local variable

* Merge cast and type checks.

* StringComparison.Ordinal added for better culture support

* Supposed code improvement in launcher. Remove unused code.

* Update ExplosionHelper.cs

Unintentional change.

* Optimized Import

* Add Robust.Shared.Utility import where it was deleted

* Other random suggestion

* Improve my comment
2019-11-13 23:37:46 +01:00
Ephememory ef2b665ff0 R&D Equipment now require power to operate. (#428)
* Fixes: #392

- Make Lathe require power to interact with or produce.
- Make R&D Console require power to interact with.
- Add PowerDevice component to R&D computer.
- Add PowerDevice component to R&D server.

* Update LatheComponent.cs

* Update LatheComponent.cs

* Update ResearchConsoleComponent.cs
2019-11-12 15:35:34 +01:00
Pieter-Jan Briers 841bb101c5
Visualize melee weapon cooldowns in HUD. 2019-11-12 01:43:11 +01:00
Ephememory 7198a7c78d Add cooldown to MeleeWeaponComponent (#426) 2019-11-11 22:21:29 +01:00
metalgearsloth de148fc98f Add hunger and thirst (#363)
* Add hunger and thirst

Based on the SS13 systems.
Food (Nutriment) / Drink -> Stomach -> Hunger / Thirst

* Cleanup rebase

* Cleanup stuff that was prototyped

* Address feedback

Still need to add a statuseffects system in a separate branch

* More cleanup on nutrition

Fix Remie's feedback and also damage tick.

* Re-implement nutrition with master

* Updated to use the StatusEffectsUI update
* Removed all clientside components as they only receive the UI updates now
* Implemented PR feedback
* Had to make a slight adjustment to the chemistry SolutionComponent given it doesn't have an Owner, same with Solution

Still TODO:
* Metabolisation effects
* Change drink contents to alcohol / wine etc.
* Add items to the dispensers
* For transparent containers use RecalculateColor

Could probably genericise DrinkFoodContainer as well to be a temporary item dispenser

* Fix broken bottle parent
2019-11-11 22:20:03 +01:00
Ephememory 0d30bc2676 Add Eris' keyboard sounds to R&D Console. (#427)
* Add Eris' keyboard sounds to R&D Console.

* woah buddy thats not c# standard

* fix weirdly capitalized keyboard method

* thats silly
2019-11-11 00:46:27 +01:00
rok-povsic e5150d3714 Fix crowbar distance to work on adjacent tiles (#424)
* Fix crowbar distance to work on max 1.5 tiles

* Use existing distance methods

* Use the existing InteractionRange
2019-11-10 21:50:13 +01:00
Ephememory 7032c8a92e Checks if user is in combat mode before allowing firing. (#425) 2019-11-10 10:59:26 +01:00
metalgearsloth 63611cef80 Port Discordia shoes (#422)
Where no icon was found used the equipped sprites
Also updated the vending machine prototypes but more items will need adding in the future.
2019-11-09 12:09:42 +01:00
metalgearsloth 0b5759abe6 Port Discordia gloves (#419)
Still need descriptions on the items to be done but the groundwork is there.
Could also do with layers for stuff that should light up in the darkness but I wasn't entirely sure what should and shouldn't.
2019-11-06 17:23:35 +01:00
DamianX 1e425f3c28 Basic wrenchable component (#418) 2019-11-06 17:22:55 +01:00
DamianX 4720353fa2 Basic rotatable component (#416)
* Basic rotatable component

* Added counter-clockwise verb

* RegisterIgnore
2019-11-06 17:22:26 +01:00
Víctor Aguilera Puerto 7d307832a0 Adds /me command. (#414)
* Adds /me command.

* Update Content.Server/Chat/ChatManager.cs

Co-Authored-By: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2019-10-30 21:49:07 +01:00
metalgearsloth 12cf5559c2 Refactor SpeciesUI into overlay and status effects (#381)
* Refactor SpeciesUI into overlay and status effects

All components that update the UI will need to use PlayerAttached for cases where the Mind transfers I think.

* Change overlay / status effects to use states

* Change TryRemoveStatus to RemoveStatus

Doesn't return a bool so not trying.
Addressing PJB's feedback.
2019-10-30 16:37:22 +01:00
moneyl 6497cdf8ff Add global verbs (#400)
* Add support for global verbs

These are verbs that are visible for all entities, regardless of their components. This works by adding a new class `GlobalVerb` and a new attribute `GlobalVerbAttribute`. It works in the same way as current verbs, except you can put the verbs class definition anywhere instead of inside a component. Also moved VerbUtility into it's own file since it now has functions for both verbs and global verbs.

* Add view variables verb as an example of global verbs

* Implement suggested changes

Implemented some suggested changes from code review:
- Remove unneeded attribute from `GlobalVerb`
- Added some useful attributes to `GlobalVerbAttribute`
- Moved constants used by both `Verb` and `GlobalVerb` into `VerbUtility`

* Reduce duplicate code in VerbSystem (client & server)

Greatly reduced the amount of duplicate code for handling component verbs and global verbs separately.

* Update engine submodule

Need this so client side permissions checks are available.
2019-10-30 16:31:35 +01:00
Pieter-Jan Briers e4f3ea7798
You can now walk over dead people. 2019-10-30 16:27:49 +01:00
DamianX 738fbdd376 Wire colors are now unique (#407) 2019-10-21 23:54:29 +02:00
Pieter-Jan Briers 9a1e4450d8
Make ID console fancier. 2019-10-21 22:54:16 +02:00
Pieter-Jan Briers 6630e454c6
Clean up reagent dispenser and make it slightly better. 2019-10-20 01:30:38 +02:00
Pieter-Jan Briers 19379decd5
Fancy up the lobby GUI. 2019-10-18 14:28:39 +02:00
Pieter-Jan Briers 6f704f0320
Move gameticker commands to another file. 2019-10-18 14:25:55 +02:00
Pieter-Jan Briers 9a38577a18
Improve autolathe & protolathe visuals.
Used correct Eris autolathe sprite.
Gave them an unlit layer.
2019-10-14 09:57:57 +02:00
Pieter-Jan Briers f3f05b0396
Correctly implement opening animation for airlocks with open maintenance panel. 2019-10-14 00:20:01 +02:00
Pieter-Jan Briers fd109436e5
Localize & fancify all the examine tooltips with markup. 2019-10-13 22:49:07 +02:00
Pieter-Jan Briers 5db8cda0b6
Add sound effect to machine panel opening/closing 2019-10-13 19:45:25 +02:00
Pieter-Jan Briers d113a738de
Make Airlock hacking shut power to the entire PowerDevice.
This makes the power device report as "not powered" in the examine tooltip.
2019-10-13 18:29:57 +02:00
Pieter-Jan Briers 445e88cce8
Airlocks do not self close when depowered.
Fixes #390
2019-10-13 17:13:16 +02:00
Pieter-Jan Briers 33e11c0c3a
Highlight "not powered" orange in PowerDevice examine.
Also localizes it.
2019-10-13 17:01:53 +02:00
Pieter-Jan Briers 370f4e140d
Using crowbar on powered airlock returns true on attackby.
Fixes #388
2019-10-13 16:56:43 +02:00
Pieter-Jan Briers be9dc90738
Disable unlit layers on unpowered airlocks.
Fixes #389
2019-10-13 16:39:21 +02:00
moneyl a5b19b10e0 Add rejuvenate command (#380)
* Add rejuvenate command

Takes one or more entity uids as input. Attempts to find a DamageableComponent on that mob and heal all damage on it.

* Add rejuvenate to right click menu

* Update engine submodule

* Make suggested changes

- Remove redundant error checks in rejuvenate console command, add in relevant ones along with shell messages so the user knows what's going on.
- Remove localization of group check on rejuvenate verb, since the translated version wouldn't be in groups.yml this would've broken the verb in other locales.
- Have the rejuvenate verb attempt to heal the user by default if no arguments were provided to it.

* More localization + help message formatting improvement

* Add more suggested changes
2019-10-13 15:30:44 +02:00
moneyl 427836fec9 Add basic chemical reactions (#376)
* Add basic chemical reaction system

What it adds:
- Reactions defined in yaml with an arbitrary amount of reactants (can be catalysts), products, and effects.

What it doesn't add:
- Temperature dependent reactions
- Metabolism or other medical/health effects

* Add many common SS13 chemicals and reactions

Added many of the common SS13 medicines and other chemicals, and their chemical reactions. Note that many of them are lacking their effects since we don't have medical yet.

* Add ExplosiveReactionEffect

Shows how IReactionEffect can be implemented to have effects that occur with a reaction by adding ExplosionReactionEffect and the potassium + water explosion reaction.

* Move ReactionSystem logic into SolutionComponent

No need for this to be a system currently so the behavior for reaction checking has been moved into SolutionComponent. Now it only checks for reactions when a reagent or solution is added to a solution. Also fixed a bug with SolutionValidReaction incorrectly returning true.

* Move explosion logic out of ExplosiveComponent

Allows you to create explosions without needing to add an ExplosiveComponent to an entity first.

* Add SolutionComponent.SolutionChanged event. Trigger dispenser ui updates with it.

This removes the need for SolutionComponent having a reference to the dispenser it's in. Instead the dispenser subscribes to the event and updates it's UI whenever the event is triggered.

* Add forgotten checks

`SolutionComponent.TryAddReagent` and `SolutionComponent.TryAddSolution` now check to see if `skipReactionCheck` is false before checking for a chemical reaction to avoid unnecessarily checking themselves for a reaction again when `SolutionComponent.PerformReaction` calls either of them.

* Change SolutionComponent.SolutionChanged to an Action

The arguments for event handler have no use here, and any class that can access SolutionChanged can access the SolutionComponent so it can just be an Action with no arguments instead.
2019-10-11 22:57:16 +02:00
metalgearsloth bd5a4e33ab Port outerclothing from discordia (#382)
Inhand sprites are half-scaled of the sprite
2019-10-11 18:09:34 +02:00
Pieter-Jan Briers d7360f8709
Fix some compiler warnings. 2019-10-10 15:48:11 +02:00
Pieter-Jan Briers fa2d633313
Remove PickUpVerb completely from held items. 2019-10-10 11:53:37 +02:00
Pieter-Jan Briers cf97ef7ad1
Give flashlights feedback about dead/missing cell. 2019-10-10 11:50:53 +02:00
moneyl 963bb28f0f Reagent dispensers (#360)
* Expose more private values of Solution and SolutionComponent

Expose SolutionComponent.ContainedSolution and Solution.Contents. Both needed by ReagentDispenserComponent.

* Implement IExamine for SolutionComponent

Allows players to see the contents of a solution by examining the entity which contains it.

* Implement ReagentDispenserComponent

Adds ReagentDispenserComponent. A component which can add or remove reagents from a solution container. It's written in a general way so that it can be used for things such as the Chemical dispensers in chemistry, but also the booze and soda dispensers in the bar. 

The chemicals it may dispense are defined in yaml, similar to the way that vending machines define which entities they can dispense, by defining a reagent pack.

* Add chemical dispenser and equipment

Adds the chemical dispenser, beaker, large beaker, dropper, and a few more chemicals.

* Add booze and soda dispensers.

Adds the booze and soda dispensers, and a few chemicals for them to dispense. There's no drink mixing or drunkenness yet.

* Update engine submodule.

* Remove unneeded and commented out code

Had a few WIP notes and debug code bits I forgot to remove beforehand.

* Make SolutionComponent._containedSolution and it's values private again

- Remove `SolutionComponent.ContainedSolution` property, replace with specific access functions to maintain safety.
- Make Solution.Contents return a `ReadOnlyCollection` instead of `_contents` to prevent uncontrolled access to the Solution values.
- Add `SolutionComponent.RemoveAllSolution()`

* Update Content.Shared/Chemistry/Solution.cs

Commits a suggestion from RemieRichards to match the coding style of the rest of the codebase. Using `IReadOnlyList` instead of `IReadOnlyCollection`.

Co-Authored-By: Remie Richards <remierichards@gmail.com>

* Update Content.Shared/GameObjects/Components/Chemistry/SolutionComponent.cs

Commits a suggestion from RemieRichards to match the coding style of the rest of the codebase. Using `IReadOnlyList` instead of `IReadOnlyCollection`.

Co-Authored-By: Remie Richards <remierichards@gmail.com>

* Add import for IReadOnlyList to Shared/SolutionComponent.cs

* Add documentation

* Improve localization

Improve use of ILocalizationManager.

* Resolve ReagentDispenserWindow._localizationManager before using it

Forgot to do this in the last commit, resulting in a crash. Oops.

* Add SolutionCaps.FitsInDispenser. Use in ReagentDispenserComponent.

Used to limit large containers like buckets or mop buckets from being placed in a dispenser. Both have large capacities (500) and weren't designed to hold certain chemicals like a beaker is, so for now they can be blocked from being put in a dispenser by giving them that flag.

* Add colors to new reagents

* Update engine submodule
2019-10-05 15:10:05 +02:00
Pieter-Jan Briers a2d8fc1ef9
Sandbox panel 2019-10-02 21:47:32 +02:00
Pieter-Jan Briers 02d509fc5f
Shitty combat mode & animations. (#367)
* Combat mode UI & targeting zones.

* Fix inventory hud positioning.

* Crappy attack animations.

* Import TG combat sounds

* More work on arcs.

* Implement hit sounds.

* Lunging, hit effects, some more stuff.
2019-09-26 22:32:32 +02:00
moneyl 31487c1cf1 Disable speaking while unconscious/dead (#362)
* Disable speaking while unconscious/dead

Fixes #359

* Add CanSpeak ActionBlocker

Matches the existing technique for other actions like CanUse() and CanThrow().
2019-09-24 09:55:38 +02:00
moneyl 3e972b501a Fix explosives (#361)
Currently explosives do no damage to tiles or damage the wrong area of the map. This is because `Owner.Delete` is called before the adjacent tiles / entities are damaged. This results in the explosives grid always being 0, and it's position always being (0, 0), meaning that the tiles in range of the explosive are not properly calculated. This fixes that (Issue #358).
2019-09-24 09:54:24 +02:00
moneyl 0090af6b3b Disable footstep sounds for ghosts (#343)
* Disable footstep sounds for ghosts

Adds a check before playing footstep sounds to check if the mover is a ghost. Doesn't play footstep sounds if they are a ghost.

* Add FootstepSoundComponent

Adds FootstepSoundComponent. If a mob has this component, it will make footstep sounds. Otherwise they will not. As of this commit humans have this component and ghosts do not.
2019-09-20 19:42:45 +02:00
Acruid e8485ee6c5 Added a new WirePlacerComponent. This is used on an item, and allows a client to place electrical wires in the world by AfterAttacking a a grid square without any other wires on it. 2019-09-19 11:47:45 -07:00
Pieter-Jan Briers 35e88ea62c
Add unit test asserting that saving, loading & saving the map produces identical output. (#348)
Also fixed PowerProvider violating this.
2019-09-19 13:46:01 +02:00
DamianX b496e8ef29 Fixed airlock maintenance panel showing when the airlock was open (#346) 2019-09-18 22:12:35 +02:00
Acruid dd06c71735 Updates the content components to be compatible with the changes in 55a50ff7ba.
Updates engine submodule.
2019-09-18 11:36:58 -07:00
DamianX 364279e0f7 Added medical scanner (#338)
* Added medical scanner

* RegisterIgnore
2019-09-18 20:24:55 +02:00
moneyl 415ac8fa46 Replace non-existent prototype in ToolLockerFillComponent (#341)
Previously this component would sometimes try to use a non-existent prototype, `HelmetEngineering`. This would result in a server crash upon loading any map that uses the `Tool Locker (Filled)` component. This replaces that non existent prototype with `HatHardhatRed`, which does exist, and is something you might expect to find in a tool locker.
2019-09-17 17:56:37 -07:00
Acruid fc5d7835c0 Updates various systems to the new InputCommandHandler delegate signature, implementing the new handled return value.
Modifies the construction system to use the newer InputHandler system, instead of the older ClickComponent system.
Updates the engine submodule.
2019-09-17 16:10:59 -07:00
Acruid 311f843ea1 Keeps the items inside a storage container spread out with a small local offset. Previously, all of the items were set to the container's position, resulting in a single pile.
Updates engine submodule.
2019-09-15 15:29:16 -07:00
Acruid c56d56c2d1 Storage containers no longer eat the items out of a container, or eat world machines like APCs and Wires. Previously they would eat any entity that would fit inside them. This resolves https://github.com/space-wizards/space-station-14/issues/254. 2019-09-09 14:56:13 -07:00
Acruid ea58ebed50 If the player mob does not have an InventoryComponent, don't spawn the default inventory items. Previously the items were blindly spawned in, and if they were not able to be equipped to the player, ended up at the map origin. 2019-09-09 10:52:45 -07:00
Acruid adb7e1b598 InventoryComponent now handles the `ContainerContentsModifiedMessage` sent when the underlying Entity Container system may have removed of of the InventoryComponent's entities. This resolves one of the underlying bugs in https://github.com/space-wizards/space-station-14/issues/254.
Updates engine submodule.
2019-09-09 10:46:20 -07:00
Acruid 5c40300474 Sanitize the OpenSlotStorageUIMessage handling on the server. 2019-09-06 16:28:21 -07:00
Acruid 6ca9e16670 Changes the interaction system so that if a client sends a UseItemInHand input command while not having a valid attached entity, the handler method will block the command. Previously, the handler method would throw a NullRefException if this occurred. 2019-09-06 10:13:48 -07:00
DamianX 0815050b2a Horrendously makes PowerDevice connect to the closest Provider (#326)
* Somewhat decently makes PowerDevice connect to the closest Provider

* Fix NullRef on server shutdown

* Fix null reference

* piss

* revert bad fix
2019-09-06 10:05:17 +02:00
DamianX 36078382e4 Airlock hacking (#329)
* Airlock hacking

* Added status text

* Whoops don't need this

* Update Content.Server/GameObjects/Components/Doors/AirlockComponent.cs

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

* ComponentReference ServerDoorComponent

* Suggested name
2019-09-06 10:05:02 +02:00
DamianX 6e2799f048 ID card console (#324)
* ID card console

* Container -> ContainerSlot
2019-09-06 08:12:44 +02:00
Víctor Aguilera Puerto ba8b495ec0 Adds Research, unlockable technologies, Protolathes... (#264)
* Work on Research so far
More work on UI...
Fix ResearchClient and Protolathe UI stuff.
Fix infinite select -> request state -> select -> ... loop
Add UI to ResearchClient, etc.
Technology Database states, and a bit of work on the research console ui
A bit of work on Research Console UI
Protolathe sync
Stuff that actually does things
Protolathe databases yay
Alright got my motivation back
Yeah, no. It's almost 3 AM already
Fix serialization bug again
More work on stuff
Stuff
Adds files for most new components/systems.

* Protolathes actually work now

* Research. Just Research.

* Adds icons from Eris.

* Address reviews

* Change LatheMenu resize behaviour

* Update Content.Client/GameObjects/Components/Research/ResearchConsoleBoundUserInterface.cs

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

* Update Content.Client/Research/ResearchConsoleMenu.cs

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

* Move IoC Resolve out of for loop

* Address review

* Localize stuff
2019-09-03 22:51:19 +02:00
metalgearsloth b62fb4a318 Add ammo boxes (#325)
Same as magazines except they can't be loaded into a weapon.
You can transfer ammo to and from magazines / boxes freely where the caliber matches so you don't need to necessarily match the magazine type.
Used popups to reflect transfer amount.
Also fixed the mag sprite showing as 0 capacity on spawn and the 10mm smg flash magazine prototype
2019-09-03 22:35:19 +02:00
Acruid 9353a060f2 Physics Shapes (#306)
* Removed BoundingBoxComponent.

* Updated prototypes to use refactored CollidableComponent.

* Renamed ICollidable to IPhysBody.
Moved ICollidable to the Shared/Physics namespace.

* Migrated more yaml files to use PhysShapes.

* Updated YAML to use the new list-of-bodies system.

* Updated the new prototypes.

* Update submodule

* Update submodule again, whoops
2019-09-03 22:14:04 +02:00
Acruid 5aafe89d95 Set the max size of a Storage to a constant, regardless of the physical size of the Storage. This lets lockers eat objects larger than themselves (like mobs). This resolves https://github.com/space-wizards/space-station-14/issues/294. 2019-09-01 17:08:15 -07:00
Acruid 7a55c07e22 The entity spawned when an item is thrown from a stack now properly sets its stack size to 1. This resolves https://github.com/space-wizards/space-station-14/issues/312. 2019-09-01 16:23:30 -07:00
Acruid 9ffbb51fd1 Items are now dropped at the pointer location if the pointer is withing the interaction range. Previously the dropped item was always placed at the player entity location.
Resolves https://github.com/space-wizards/space-station-14/issues/235.
2019-09-01 16:01:57 -07:00
DamianX f3b460c8b4 IDs and access (#319)
* something about access

* Fixed deny animation
2019-09-01 22:57:22 +02:00
DamianX 264a63b7f6 Wires! (#315)
* Wires!

* Use state instead of messages

* cleanup

* Update submodule

* actually fix conflict

* Maybe fix conflicts?

* Localized strings, removed hardcoded sprite path

* cleanup

* More localization and sounds
2019-09-01 22:15:34 +02:00
Acruid 9acf37e99d PowerStorageComponent now prints battery statistics to the examine window. 2019-08-30 23:36:07 -07:00
Pieter-Jan Briers 5716671dcf
Fix some compiler warnings. 2019-08-29 16:59:59 +02:00
Pieter-Jan Briers 6bdd26506c
Don't spawn all bullets in a magazine until necessary. 2019-08-29 15:05:42 +02:00
Pieter-Jan Briers ecb7cd3c66
Update all the NuGet packages & submodule. 2019-08-27 22:39:32 +02:00
Pieter-Jan Briers 293f88599d
Update submodule. 2019-08-27 22:00:38 +02:00
Pieter-Jan Briers ee029de5e7
Allow stack component count to be VV'd. 2019-08-25 15:07:26 +02:00
ShadowCommander 34e7edb5f5 Fix for clicking an item in the offhand with the activehand (#314)
* Fix for clicking an item in the offhand with the activehand

* Renamed attacked to entity
2019-08-25 13:10:59 +02:00
Pieter-Jan Briers 77216af44e
Don't copy project dependencies for content projects.
#850
2019-08-22 18:44:35 +02:00
Pieter-Jan Briers ffbff0d765
Fix build 2019-08-22 11:10:14 +02:00
metalgearsloth 9431011ba5 Add more dakka (#307)
* Add more dakka

Some slight codebase changes to facilitate more robust behaviour.

* Update Content.Server/GameObjects/Components/Projectiles/ProjectileComponent.cs

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

* Remix last stereo to mono

hpistol + ltrifle
2019-08-22 11:08:32 +02:00
Pieter-Jan Briers ecbf9a7706
Fix build 2019-08-22 09:28:24 +02:00
DamianX f0053f15bf Added pickaxe, asteroid rock and floors (#301) 2019-08-21 22:50:15 +02:00
ShadowCommander 66c5affa65 Merge branch 'master' of https://github.com/space-wizards/space-station-14 2019-08-20 18:27:12 -07:00
DamianX be4197351a Fixed examine things (#308) 2019-08-19 22:27:25 +02:00
DamianX 4dcbf28714 IoC'd random (#302)
* Implemented RobustRandom

* update submodule

* update submodule

* Fix benchmark
2019-08-17 12:09:09 -07:00
ShadowCommander 1c81f6097f Merge branch 'master' of https://github.com/space-wizards/space-station-14 2019-08-16 15:46:06 -07:00
DamianX 88920696f3 Vending Machines (#296)
* Vending Machines

* addressed review
2019-08-14 10:49:28 +02:00
Pieter-Jan Briers 72ba0d9458
Don't let bullets fly forever. Give them 10 seconds until deleted. 2019-08-13 23:43:44 +02:00
Pieter-Jan Briers 96eb4afdf6
Import a ton of backpack types. 2019-08-12 21:34:35 +02:00
Pieter-Jan Briers d4384aef73
Eris computer sprites, visualizer. 2019-08-12 18:43:24 +02:00
ShadowCommander 0071321c53 Merge branch 'master' into Input 2019-08-10 16:08:48 -07:00
ShadowCommander b59c1a2b0f Merge remote-tracking branch 'upstream/master' 2019-08-10 15:46:57 -07:00
Acruid 8b593d28c6 AI Wander & Barker (#286)
* Retrofit the AI system with new IoC features.
Fixed bug with turret rotation.

* Added new AI WanderProcessor, and it works.

* RNG walking directions are a bit more random now.

* Wander now actually uses the MoverSystem to move.
Wander now talks when he reaches his destination.

* Adds a new Static Barker AI for vending machines, so that they periodically advertise their brand.

* Barker now says some generic slogans.
Misc bug cleanup.

* Removed useless UsedImplicitly attribute from AI dependencies, suppressed unused variable warnings instead.
2019-08-10 14:19:52 +02:00
metalgearsloth 4b30c7e710 Add more tiles and walls (#289) 2019-08-10 14:17:49 +02:00
ShadowCommander 7753ae7c3a Added OpenStorage trigger on ActivateItemInWorld
When ActivateItemInWorld is pressed when hovering over a InventoryButton and the InventorySlot contains a storage item, it will open the StorageGUI.
2019-08-07 15:56:22 -07:00
ShadowCommander 8c59d2e3b9 Removed extra dependencies 2019-08-06 01:09:44 -07:00
ShadowCommander ca9cc36a93 Merge remote-tracking branch 'upstream/master' into Input 2019-08-04 16:10:06 -07:00
ShadowCommander 7422d9148a Refactored input system 2019-08-04 16:03:51 -07:00
Pieter-Jan Briers 02da078baf
Unified those messy FrameEventArgs. 2019-08-04 01:08:55 +02:00
Pieter-Jan Briers 3488ca0173
Try to work around space-wizards/space-station-14#284 2019-08-03 15:07:47 +02:00
Pieter-Jan Briers 8cf5195db6
.NET Core support.
Also dropped x86 because apparently unit tests still work.
2019-08-02 22:45:41 +02:00
ShadowCommander 151d3a3672 Fixed HandsGui and added an icon to access worn inventories (#279)
* Fixed HandsGui children so that HandsGui is clickable

* Added TextureButton for opening Storage items

* Update ClientInventoryComponent.cs

Fixed HandleComponentState so that it only updates the inventory when there are changes.

* Implemented storage button on Inventory

Adds a small button on the bottom right of Storage items when inside the inventory. When the button is pressed it opens the Storage UI.
2019-08-01 01:38:24 +02:00
Pieter-Jan Briers d5ec234fd3
Ignore some client components on the server. 2019-07-31 22:42:36 +02:00
Pieter-Jan Briers ceb8cc8421
Use automatic component registration. 2019-07-31 15:07:54 +02:00
Acruid 2ea8bbf4eb Reagents & Solutions (#280)
* Added the ReagentPrototype class.

* Added the new Solution class.

* Added new shared SolutionComponent to the ECS system.

* Added some basic element and chemical reagent prototypes.

* Added a new Beaker item utilizing the SolutionComponent. This is a testing/debug entity, and should be removed or changed soon.

* Added filters for code coverage.

* Nightly work.

* Added the server SolutionComponent class.

* Added a bucket.
Verbs set up for solution interaction.

* Adds water tank entity to the game.

* Added a full water tank entity.
Solutions are properly serialized.
Solution can be poured between two containers.

* Solution class can now be enumerated.
SolutionComponent now calculates the color of the solution.

* Minor Cleanup.
2019-07-31 14:10:06 +02:00
Pieter-Jan Briers 211dd56f94
Correctly send saying entity UID to clients. 2019-07-30 23:11:27 +02:00
Pieter-Jan Briers 1132e5b6a7
Update submodule: light cleanup. 2019-07-30 13:31:46 +02:00
Pieter-Jan Briers 930cb61af8
Flashlight improvements:
1. Sound effects
2. fixed sprite having a hole
2019-07-27 11:56:36 +02:00
Pieter-Jan Briers 2e230c089b
Opening lockers or crates makes sound now. 2019-07-27 09:23:00 +02:00
Acruid 232e4951b0 Fixes InteractionSystem so that a player can pick up an item from a grid that isn't at the world origin. 2019-07-24 10:59:19 -07:00
Pieter-Jan Briers 1fbb5915aa
Better inventory window, inventory buttons on game HUD.
Part of #272
2019-07-23 23:24:47 +02:00
Víctor Aguilera Puerto 5f276cd39d Simple quick equip (#275)
* Quick equip

* Minor improvements.
2019-07-19 16:31:56 +02:00
Pieter-Jan Briers 8cb3b9b2e6
Make respawn command work without argument. 2019-07-19 12:40:03 +02:00
Pieter-Jan Briers 1a92d08399
Improves examine code
Examining now has larger range. Ghosts have no range limit.
Fixed some messy code and some bad netcode.
2019-07-19 10:45:55 +02:00
metalgearsloth 1f320eccd7 Add basic teleportation and portals (#269)
* Add basic teleportation and portals

* Address PJB's feedback and minor cleanup
2019-07-19 10:09:33 +02:00
Pieter-Jan Briers 22c5b6eb31
Better join chat messages. 2019-07-19 01:21:09 +02:00
Víctor Aguilera Puerto d9077bde74 Adds IThrown, ILand interfaces. Adds dice. (#273)
* Dice, IThrown, ILand

* Adds sounds to the dice using a sound collection.

* Seed random instance better.

* Missed a ")", should compile now
2019-07-18 23:33:02 +02:00
Pieter-Jan Briers b9215d214e
Fix ContainerSlot not serializing correctly when empty. 2019-07-08 13:35:05 +02:00
Pieter-Jan Briers 558f6ab8a5
Removal of TrySpawn* methods, update submodule. 2019-07-07 22:24:44 +02:00
Pieter-Jan Briers 8ff4c22f42
Polish explosions somewhat.
Just makes them less ugly. Slightly.
2019-07-07 00:39:00 +02:00
Pieter-Jan Briers c4523a956d Stupidly shoddy combat mode system.
Doesn't even work for guns, oh well.
2019-06-30 00:01:41 +02:00
Pieter-Jan Briers f97977323a Improve integration testing 2019-06-29 01:58:16 +02:00
Injazz 10801af2f7 Explosions and Grenades, Triggers, OnDestroy, OnExAct, Fueltanks and destructible tables (#247)
* initial explosiveComponent

* remove garbagee

* assets

* tile mass deletion baby

* grenades

* tweaks

* Update Content.Server/GameObjects/Components/Explosion/ExplosiveComponent.cs

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

* Ex_act based on damage, fixes and tweaks

* One finishing touch

Done the most cringe way

* ex_act explosions, tables are destructible now

also adds fuel tanks

* adds ex_act to mobs
2019-06-07 13:15:20 +02:00
Pieter-Jan Briers f551bd32d6 Update submodule, client integration test. 2019-06-04 19:08:15 +02:00
Injazz c156af34c4 Adds security and clown outfits, and SoundEmitters (#253)
* ports clown and sec outfits

* bikehorn and soundemitters

* very smol bike horn

* working fine sounds

* Oh wow i can do it through github

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

* fixes for review

* fixes prototype

* fixing entrypoint
2019-06-03 20:16:47 +02:00
Víctor Aguilera Puerto 50bc1bff48 Fix bug where lathe databases didn't get serialized correctly. (#252) 2019-06-02 01:18:54 +02:00
Injazz 400778eb73 improves hitscan weapons (#248)
- fixes inhand sprite visibility
- adds visible charge level
- refactor sound recourse load, now you can specify fire sound from YAML
- adds laser cannon - more powerful laser
- adds new assets for cannon
2019-06-02 01:16:55 +02:00
Pieter-Jan Briers 56bccdbc3e Update submodule, update NuGet dependencies. 2019-05-29 14:04:57 +02:00
Pieter-Jan Briers 8bb4f526f5 Make it possible to VV DamageableComponent's damage. 2019-05-28 13:34:11 +02:00
Pieter-Jan Briers 93a34186cc Make the camera kick when hit by a bullet. 2019-05-28 13:33:42 +02:00
Pieter-Jan Briers 996b45a04f
Project File Refactor (#241)
* Project file refactor, content edition

* Update submodule
2019-05-28 00:18:29 +02:00
Pieter-Jan Briers 7e703760c8
Merge pull request #233 from Acruid/19-05-16_ExamineImprovements
Examine Improvements
2019-05-24 21:56:40 +02:00
Acruid e40f9b20e3 Added a range check for examining entities. Now you can't examine things across the map.
Made the examine window a little transparent so that you can see things behind it. This prevents the examine popup from occluding gameplay.
Moved the ExamineEntity bind from Human to Common context so that it will always be available to clients. Ghosts can now examine things.
2019-05-22 12:59:30 -07:00
Acruid d52e5ccbfb Verbs can now set themselves as invisible. 2019-05-22 08:53:50 -07:00
Pieter-Jan Briers 8c6f6f3fb0
Merge pull request #227 from Moneyl/construction-null-step-crash-fix
Fixes server crash due to null construction step
2019-05-18 23:24:55 +02:00
moneyl 7e30ffe007 Fixes server crash due to null construction step
ConstructionComponent.AttackBy tries calling TryProcessStep on the forward step of the construction stage, and if that fails it tries the backwards step. I many construction prototypes the backwards step is null for all stages and so clicking the construction ghost with an invalid step results in a crash due to the step passed to TryProcessStep being null.
2019-05-18 17:10:19 -04:00
moneyl 916b1521a0 Fixes server crash when clicking empty hand with full hand 2019-05-18 13:26:58 -04:00
Pieter-Jan Briers c197278c6f Interaction rework.
IActivate is now more used. IAttackHand falls back to IActivate.
2019-05-16 15:51:32 +02:00
Pieter-Jan Briers 792b219b04 Prevent server crashing without gamepreset override. 2019-05-16 14:09:11 +02:00
Pieter-Jan Briers a903ffb105 Allow admins to change round preset. 2019-05-15 15:49:02 +02:00
Pieter-Jan Briers 9a1f37d476 Update submodule, switch to .NET Framework 4.7.2 2019-05-11 16:10:09 +02:00
Pieter-Jan Briers 29304a7714 Handle existing players on restartround correctly. 2019-05-08 16:42:36 +02:00
Pieter-Jan Briers 90620db5f8 Adds shoddy death match system.
It barely even works but oh well.
2019-05-08 09:55:36 +02:00
Pieter-Jan Briers a014b40972 Update submodule 2019-05-08 09:55:00 +02:00
Pieter-Jan Briers 41b5c4dba2 Hide spam from storage component. 2019-05-06 19:31:04 +02:00
Pieter-Jan Briers e35d5390db Storage system refactor & map init.
* Demonstrated map init working with guns, toolboxes, tool lockers.
* Refactored EntityStorage and ServerStorage to have a common interface.
* EntityStorage no longer uses ServerStorage PURELY for visuals.
  Use an appearance visualizer instead.
2019-05-05 18:52:06 +02:00
Pieter-Jan Briers b7d30f0870 Remove manual container ejection checking code.
This fixes map load when something is in a storage component.
2019-05-05 13:09:21 +02:00
Pieter-Jan Briers 23d8b92f94 Implement updates to containers for ContainerSlot. 2019-05-05 13:08:56 +02:00
Pieter-Jan Briers f249c19eaf Fix a couple warnings. 2019-04-29 13:12:50 +02:00
Pieter-Jan Briers 02e35502a1
Changed some function names on IMapGrid. (#212)
UnitTesting project is now filtered out of the code coverage.
2019-04-29 12:52:47 +02:00
Acruid 25b50ebb27 Changed some function names on IMapGrid.
UnitTesting project is now filtered out of the code coverage.
2019-04-28 22:08:27 -07:00
Pieter-Jan Briers 6e5680b3c2
Engineering lockers. (#210)
* Import Eris engineering locker sprites.

* Allow customizing ClientStorageComponent open/close states better.

* EntityStorage does not blow up if Storage is also defined in prototype.

* Engineering styled lockers.
2019-04-26 23:44:26 +02:00
Víctor Aguilera Puerto fe0414eda7 Lathes (#207)
* Recipe stuff.

* Lathe GUI and stuff

* god dammit

* Lathe menu works, yay.

* EventArgs henk

* Some work

* SS14 -> Robust

* More SS14 -> Robust

* Lathe materials

* Lathe works, Lathe GUI, Queue GUI, etc

too many changes to name them here

* Remove materials button, add ViewVariables and update lathe on connect

* Add Autolathe RSI

* Adds new recipes, fixes a few bugs.

* Remove unused ScrollContainers

* Use same delegate for spawn.

* Removes client-side LatheComponent in favor of BoundUserInterface

* Remove GetMaterial and TryGetMaterial

* Use auto-properties in a few places.

* Adds LatheDatabase, and a bunch of other changes

* Remove useless log.

* Remove lathetype from prototypes.

* Turns Storage, Lathe and Database into autoproperties

* Remove Hacked property from LatheRecipePrototype

* Remove unneeded dependency injection from components

* Refactors LatheDatabaseComponent to use ComponentState

* Refactors MaterialStorageComponent to use ComponentState

* Oopsie

* Another oopsie

* Last oopsie, I hope

* Fix missing Close call.
2019-04-26 15:51:05 +02:00
DamianX b16768fd0b Moved dropping items over PlaceableSurfaces from AfterAttack to AttackBy (#209)
Added ClickLocation variable to AttackByEventArgs
2019-04-25 23:22:51 +02:00
Pieter-Jan Briers a75ec704e6 Fix being unable to fire guns. 2019-04-22 16:51:58 +02:00
Acruid d3daa83b82 Map System Code Refactor (#204)
* Removes static `IoCManager` service locator calls from `Robust.Shared.Map` namespace.
* Misc code cleanup and filling out doc comments for Map classes.
* Added Union and Intersect methods to Box2.
* Any touched component was converted from static IoC calls to field injection.

Sibling PR to https://github.com/space-wizards/RobustToolbox/pull/796.
2019-04-21 01:20:18 +02:00
Acruid 50f42d71a2 Interaction System Messages (#202)
* Adds entity messages to the InteractionSystem.

* Changed Handled check formatting to match the rest of the codebase.
2019-04-21 01:18:16 +02:00
Pieter-Jan Briers 3e1f7d6d92 Fix compiler warnings. 2019-04-19 23:44:28 +02:00
Víctor Aguilera Puerto 29caf4cf53 Fix the thing (#203) 2019-04-19 12:30:31 +02:00
Pieter-Jan Briers 747cb15888
OOC <-> Discord link. (#201) 2019-04-17 23:31:43 +02:00
PrPleGoo 903961771b Actual lockers (#195)
Adds storing entities into lockers the way we all know and love.
Relies on an implementation of ITileDefinition in https://github.com/space-wizards/space-station-14/pull/193 (just like origin/master)
#191
2019-04-17 23:26:00 +02:00
Silver a18692bc46 Rename toolbox references from ss14 to robust 2019-04-15 21:11:38 -06:00
Pieter-Jan Briers 52af7d27da
Re-implement chat in content. (#198)
* OOC is a word.

* Re-implement chat in content.
2019-04-13 09:45:09 +02:00
Pieter-Jan Briers c283634efb
Make examine use tooltips. (#189)
FANCY.
2019-04-09 17:33:53 +02:00
PrPleGoo 35f3cbe3f9 Engineer's helmet (#188)
* refacting some sprite things

* fix sprites

* Netcode for sending a new icon state to the ClientComponent

* Fixed broken torches.

* Fix dirty calls.

* ClothingComponentState now also includes EquippedPrefix

* Inherritance ClothingComponent : ItemComponent

* Added parameter to ItemComponentState constructor.

* Update RobustToolbox

* Revert "Update RobustToolbox"

This reverts commit 82c7e98ff3853b64698d5e80a45cd7a3758618e0.

Undo weird commit to toolbox?
2019-04-08 12:18:27 +02:00
PrPleGoo 77753debeb Leather gloves and an LED tube light. (#187)
Added BurnTemperature to bulbs.
Added HeatResistance to clothing and species.
Added HeatResistanceComponent which resolves armor vs skin.
Made the hand burn on lamps only happen when heat resistance is too poor.
2019-04-06 17:11:51 +02:00
PrPleGoo 66344c3ac7 Activate with an EventArg object for a parameter 2019-04-05 19:44:32 +02:00
PrPleGoo c90d54664b UseEntity with an EventArg object for a parameter 2019-04-05 19:42:49 +02:00
PrPleGoo 7d85141c9b AfterAttack with an EventArg object for a parameter 2019-04-05 19:40:46 +02:00
PrPleGoo 9b2be2ba50 RangedAttackBy with an EventArg object for a parameter 2019-04-05 19:32:18 +02:00
PrPleGoo ddde077d16 AttackByEventArgs inherits from EventArgs again 2019-04-05 19:29:16 +02:00
PrPleGoo 495315565a AttackHand with an EventArg object for a parameter 2019-04-05 19:27:39 +02:00
PrPleGoo ee7a29326d AttackBy with an EventArg object for a parameter 2019-04-05 19:22:38 +02:00
Pieter-Jan Briers f5bb790edb
Footstep sounds. (#182) 2019-04-05 02:04:34 +02:00
Pieter-Jan Briers ea581e67c8 Correctly implement movement blocking and undo that appearance mess. 2019-04-04 19:43:01 +02:00
Pieter-Jan Briers 0fe1407214 Move movement to client. 2019-04-04 16:18:43 +02:00
Pieter-Jan Briers 9f3f09871e
Wires are now actually hidden by floor tiles. (#181) 2019-04-04 15:09:06 +02:00
ScumbagDog 1af1ee2ad4 Made a fancier lasergun (#174)
Laserguns now have an internal capacitor that can be recharged by using it with a power cell

Makes the final fix for #138
2019-04-01 20:06:43 +02:00
clusterfack bc98d3cef8 Fix examine going to all clients (#175)
It was using the incorrect overload
2019-03-30 23:46:54 +01:00
Pieter-Jan Briers 2bfb03cd29 Update submodule, unfuck scripts, clean up solution file. 2019-03-30 23:20:50 +01:00
clusterfack a73c76cd02 Fix being able to store larger or the same size storage containers within another (#172) 2019-03-30 13:56:29 +01:00
Silver 0869b05ffd Update Projects and References 2019-03-30 00:31:45 -06:00
Víctor Aguilera Puerto d090e98bd4 [Ready] SoundComponent (#164)
Requires https://github.com/space-wizards/space-station-14/pull/768

- [x] Play sounds
- [x] SoundSchedules actually work
- [x] Send sound to specific users
- [x] Make existing components use SoundComponent
- [x] Add ScheduledSounds from prototypes
- [x] Add Play methods equivalent to those of AudioSystem.
- [x] Document most code.
2019-03-28 14:31:49 +01:00
Pieter-Jan Briers 8926669f3a Better feedback when failing to insert into storage. 2019-03-28 11:48:18 +01:00
Pieter-Jan Briers 3fb42ca4ee Make ClothingComponent Storeable.
This fixes being unable to store clothing into lockers.
2019-03-28 11:47:45 +01:00
Remie Richards c0caaaa8e5 Fix pickup verb. (#165) 2019-03-27 13:29:43 +01:00
Injazz c5e077efc1 mob dead state tweaks (#162)
~~well, it SHOULD make mob rotate on death, but it doesn't, i have no idea why~~

- Blocks character movement in crit/death
- rotates character ~~360noscope~~ 90 degrees to convince you it's lying down when dead

resolves #145
resolves #158
related to #115
2019-03-27 13:29:06 +01:00
Pieter-Jan Briers de26699cfe Pick up verb. 2019-03-26 13:46:07 +01:00
Pieter-Jan Briers 3b83ba9f65 ContainerSlot deletes contained entity on deletion. 2019-03-26 09:35:51 +01:00
Pieter-Jan Briers e3a39a21a2 Prevent epilepsy seizures from lights running out of power. 2019-03-25 22:47:54 +01:00
Injazz 4a5168f14c Destructible component rework (#157)
* Walls are destructible now
* Added girders that spawn after wall’s destruction
* Girders drop metal sheet on destruction
2019-03-25 22:27:03 +01:00
Pieter-Jan Briers b9e18b43e7 Prevent thunk sound spam. 2019-03-25 13:01:03 +01:00
Pieter-Jan Briers 6d0c2ed362 Magazines now correctly get saved to the map. 2019-03-24 23:37:28 +01:00
Víctor Aguilera Puerto d9ff72c907 Adds small lights and small light bulbs. (#156)
In the future, someone might want to edit the sprites so the bulb is white and not yellow.
Here's some screenshots:
![image](https://user-images.githubusercontent.com/6766154/54878560-d9242e80-4e2e-11e9-8fde-39ae082f34b0.png)
![image](https://user-images.githubusercontent.com/6766154/54878572-f3f6a300-4e2e-11e9-95a1-253a5504922f.png)
2019-03-24 18:05:32 +01:00
Víctor Aguilera Puerto 03856b79b4 Fix the sound bug when clicking on lights. (#155)
It was updating lights when there was nothing to be updated, which caused the sound to play.
2019-03-23 22:42:41 +01:00
Víctor Aguilera Puerto 4f2ae14b3f Light bulbs can now be colored! (#154)
-Also fixes a bug where bulb type didn't matter when inserting a new bulb into a light fixture.
-And a bug where bulb state changing didn't change the light itself.

P.S. Also note I didn't add any colored lightbulb prototypes, as I don't think they're necessary right now. To see the changes, please use VV! In the future, it might be possible to change the lightbulb's color with a multitool or something in-game.
2019-03-23 22:30:05 +01:00
Pieter-Jan Briers 0882435293
Fancy guns. (#152) 2019-03-23 15:04:14 +01:00
Víctor Aguilera Puerto b3aa1f6dcd Wall lights now require light bulbs. (#151)
* Adds light_tube.rsi

Sprites taken from CEV Eris!

* Adds LightBulbComponent

* Wall lights now use light bulbs!

* Light bulb now updates its sprite when it changes.

* Comments the code.

* Adds license and copyright to new sprites
2019-03-22 23:59:13 +01:00
Pieter-Jan Briers 58e8aef5d8 Fix removing items from inventory dropping them too. 2019-03-22 23:53:43 +01:00
Pieter-Jan Briers 5b0f49bab7 Reset relative of entities to 0 on pickup.
This mostly helps with akwardness related to sound positioning.
2019-03-22 22:18:17 +01:00
Víctor Aguilera Puerto 62eb7db0c7 Adds Ointment and Brutepack. (#150)
* Add Ointment and Brutepack to StackType

* Add Ointment and Brutepack sprites

* HealingComponent now works correctly with StackComponent

* Adds Ointment and Brutepack prototypes

* Adds Ointment and Brutepack to stationstation
2019-03-22 15:03:29 +01:00
Víctor Aguilera Puerto 6649d06fd8 HealingComponent can now heal different types of damage (#146)
```
  - type: Healing
    heal: 100
    damage: Heat
```
2019-03-21 19:34:03 +01:00
Pieter-Jan Briers 45b803ce41 Simplify Healing Component deletion.
I just fixed the bug causing it to need explicit dropping so this hack
can go.
2019-03-21 17:51:25 +01:00
Pieter-Jan Briers e1ca54fc2e Fix crash when deleting held entity. 2019-03-21 17:49:21 +01:00
Injazz 3b40b4aafa Healing component and Medkit (#143)
Medkit to heal yourself and your buddy
known issues:
- [ ] it doesn't restore screen effects that happens when health status go into crit and dead
2019-03-21 16:55:16 +01:00
Pieter-Jan Briers 8b694b1899 Bullets no longer open doors. 2019-03-20 15:02:19 +01:00
Pieter-Jan Briers 34f4c12e00 APCs now go click when breaker is switched. 2019-03-20 14:11:03 +01:00
Pieter-Jan Briers c17bc612ff Lights now go CLUNK when turned on. 2019-03-20 01:12:38 +01:00
Pieter-Jan Briers d7ef38701b Actually position gun sounds. 2019-03-19 22:41:19 +01:00
Pieter-Jan Briers e1f6a2bbd5 Spawn point system.
Hey we can place spawn points on the map now instead of hardcoding them!
Spawn points are simply invisible bare bones entities.
2019-03-17 15:52:27 +01:00
Pieter-Jan Briers 694d6e5b33 Fix crash when putting gun into backpack. 2019-03-17 14:37:05 +01:00
Pieter-Jan Briers f779755c11 Doors are now automated. 2019-03-17 13:24:26 +01:00
Pieter-Jan Briers 84aa369809 Airlocks rewritten to use appearances, use less ugly sprite from Eris. 2019-03-16 20:40:07 +01:00
Pieter-Jan Briers 415b7e96fd
Transform refactor. (#139)
space-wizards/space-station-14#725
2019-01-18 11:40:30 +01:00
Pieter-Jan Briers 7ca90d11b3
Gun stuff (#132)
* Guns can now be fully automatic.

Take that BYOND.

* Improve delay handling

* Bullet spread

* Fix firing guns on pickup
2018-12-13 14:49:57 +01:00
Acruid 69946c79d8 Fixes inventories and throwing. (#133) 2018-12-13 14:49:05 +01:00
clusterfack 37df61113e Species Component (#130)
* Fix this
fug
oksure
Creates the initial species component, damage states, and threshold templates and hooks them into the damageable component

* More rebase fixes

* test

* Pre future rebase

* Please

* Lol

* Lol2

* SHADERS

* Update Engine

* yml file

* Fix an initialization issue, injects dependencies

* Fix error in loading shaders

* Makes a master character ui controller component added upon client attachment to entity and remove upon client detachment from entity

* Fixes just about everytrhing

* Address PJB's comments

* geeze

* Make overlays work in worldspace instead of screen space and not cover user interfaces

* update submodule
2018-12-13 14:47:18 +01:00
Pieter-Jan Briers ef3007a603
Parallax (#131) 2018-11-30 21:54:30 +01:00
Pieter-Jan Briers 0230323563 Implement server status content side. 2018-11-26 10:02:47 +01:00
Pieter-Jan Briers 845d0f9182
We have a lobby! (#127)
It's shoddy as hell but it works for our purposes.
2018-11-25 19:04:49 +01:00
Pieter-Jan Briers f887d22a16 Make WipeMind() not crash if there is no mind to be wiped. 2018-11-25 12:52:31 +01:00
Pieter-Jan Briers 9780cf9062 Allow changing the owner of a mind. 2018-11-24 19:12:22 +01:00
Pieter-Jan Briers 10120bb0b6 Engine InLobby removal update. 2018-11-22 23:07:27 +01:00
Pieter-Jan Briers 574512f1bf
Extremely basic game ticker. (#126)
You can theoretically restart the round (resetting the map) now, but it breaks very badly if a client is connected due to various edge cases/race conditions.
2018-11-22 10:37:58 +01:00
Pieter-Jan Briers 744af3be3e Remove even more join delay 2018-11-21 21:25:21 +01:00
Pieter-Jan Briers 2d07d89a73 Content changes for ServerRunLevel removal 2018-11-21 21:21:29 +01:00
Pieter-Jan Briers f91488fa27
Popup message notifications. (#125)
* Popup message system v1

* Networking for the popup notifications.

Ship it.
2018-11-21 21:11:30 +01:00
Pieter-Jan Briers b0f212bad5
Verbs (#124)
Right click verbs work.
2018-11-21 20:58:11 +01:00
Acruid 8038ebe37d Fix Hands Crash (#122)
* Fixed sprite issues with construction system (Thanks PJB!).

* Storage and Hands Systems now subscribe to Transform Parent changes, and will keep their containers in sync.

* Add check in Interaction System to prevent processing client-side entities on the server.
2018-11-11 20:32:05 +01:00
Pieter-Jan Briers 4720182cf4
Flashlights now run off a power cell. (#121)
* Flashlight runs off a power cell now.

* Cleanup
2018-11-11 20:05:09 +01:00
Pieter-Jan Briers 51bc17f76d
Fix map serialization of storage component. (#111)
Items were stored since the engine can serialize containers,
but the used storage volume wasn't.
2018-11-11 20:04:52 +01:00
Acruid d186f18c20 Thrown Item Physics (#120)
* Thrown object speed is now based on force.
Fixed BoundingBox namespace.

* 100% more throwing.
CollisionGroup enum.

* Update Engine.
2018-10-30 09:13:10 +01:00
Acruid 3dc3031054
World Storage (#112)
* Added generic crate assets.
Added open flag to StorageComponent.

* StorageComponent door toggling works.

* Door now updates based on if someone is subscribed to the Storage.

* Added License to crate.rsi
Fixed Icon of crate.

* Added basic Locker.

* Added Fire Extinguisher.

* Added ability to close the storage UI by the server.
Notify the server that the UI is closed, so that the player is unsubscribed from the storage.
Unsubscribe the player from a storage if the player entity moves out of range.

* Add check to make sure entity is on the same map as the storage.

* Update Engine module.

* Update Engine.
2018-10-25 17:35:34 -07:00
Acruid 6cc88115b5
Rename ICollisionManager to IPhysicsManager (#113)
* Renamed ICollisionManager to IPhysicsManager.

* Added sanitization and logging for clients sending invalid coordinates to the interaction system.

* Update Engine.
2018-10-25 17:29:33 -07:00
Pieter-Jan Briers c33daddda2 Power cells 2018-09-21 08:21:40 +02:00
PJB3005 b92a9b6d1a Admin Ghosting 2018-09-20 18:19:04 +02:00
Pieter-Jan Briers 74541e23a4
Equipment & inhands. (#110)
* Equipment WiP

* Equipment's starting to work.

* Equipment works properly 100% now.

* Inhands work.

Also more clothes.
2018-09-19 18:54:04 +02:00
Pieter-Jan Briers 73712b4e39 Update submodule.
Guns work again.
2018-09-17 12:36:09 +02:00
Pieter-Jan Briers 7a91fb7512
Project file maintenance, C# 7.2 (#108)
1. Updates all the NuGet packages (except CommandLineParser because they ruined their API)
2. Makes all projects use C# 7.2 explicitly. (not latest)
3. Use some C# 7.2 features like readonly structs and default literals.
2018-09-13 20:09:53 +02:00
PJB3005 1dabe49234 VV support. 2018-09-09 15:34:43 +02:00
Pieter-Jan Briers d414ea55f5
APC GUI. (#107) 2018-08-31 08:52:48 +02:00
PJB3005 bb5a278fdb Fix compiler warning. 2018-08-30 12:53:23 +02:00
Centronias ef506006b3 Toggleable flashlight (#106)
Fixes second half of #92 

Regarding the first half, Digitalis explained in discord that when an entity is picked up, visible components are made invisible by making the entire Godot scene node for the entity (based on the GodotTransformComponent) not visible. It's probably possible to exempt the pointlight from that invisibility, but that seems hacky and it seems like something that should be covered by a generic "items equipped in hands are visible" design.

Adds:
- Handheld light component for toggling light activation
- Lantern sprite with on and off layers
- Lantern prototype updates

Known issues:
- When light is on and on the ground, hovering over it with the cursor does not produce the outline effect. I'm not sure, but I think this is caused by the way I implemented the illuminated layer as an entire sprite rather than just the illuminated part. The outline only works on the first layer maybe? I checked it against the welder in its on state and it doesn't seem to outline the flame.
- Illuminated sprite (layer 1) is an entire flashlight, so to make it look okay, the whole first layer is turned off. Would be better / more correct to follow the example of the welder and just create an illuminated "cap" to overlay on the dark extinguished layer. I'd whip up some coder art myself, but I don't have the right tools to handle transparency.
- Illuminated sprite is slightly different from the extinguished sprite, so turning on the light makes it a little bit shorter.
2018-08-28 17:39:20 +02:00
Acruid 7b7b5cc59f Math Assembly (#102)
Included new Math assembly in projects.
2018-08-27 10:23:42 +02:00
Acruid ed39649721 Interaction Features (#101)
Various minor interaction features.

There is no concept of gravity in the game yet, so items drift through space or the hallways of a station until they are stopped. Thrown items do not collide with walls because making them collidable makes them collide with EVERYTHING, including the player. We need collision groups in the physics system.

Because of the previous problems the velocity things are throw at is set quite low, it can be tweaked after the other mentioned issues are resolved.
2018-08-22 10:19:47 +02:00
Pieter-Jan Briers cd4442b81e Antag Datums. Oh also minds. (#100)
AKA: Minds and there's a stupid basic roles framework.
2018-08-20 15:59:04 -07:00
Pieter-Jan Briers e8c4dc9a34
Rejoin into the same body. (#96)
Depends on https://github.com/space-wizards/space-station-14/pull/659
2018-08-20 11:47:00 +02:00
Acruid edb3eb5b2e
HandsSystem now uses InputSystem. (#95)
Fixed TemperatureSystem namespace.
2018-08-18 15:28:02 -07:00
Acruid ce5760d46c
Click Migration (#94)
* Migrated Interaction system to the new Input system.

* Contexts are now set up in content.
2018-08-16 15:57:11 -07:00
Pieter-Jan Briers 189a52c6d7
Use Sprite proxies for GUIs. (#93)
AKA "welders actually light up in the hands GUI".
2018-08-16 22:43:04 +02:00
Acruid 830159390b
Input Handling (#90)
* Migrates the Examine system to the new Input system.

* Update Engine.
2018-08-08 11:43:49 -07:00
Pieter-Jan Briers 40ed16e118 Fix build harder. 2018-08-02 08:55:49 +02:00
Pieter-Jan Briers d7074bf74f
Construction System. (#87)
* Construction WiP

* Construction kinda works!

* Lots more construction work.

* It mostly works!
2018-08-02 08:29:55 +02:00
Víctor Aguilera Puerto f051078c79 Remove all references to OpenTK (#85)
Resolves #80
2018-07-29 23:58:19 +02:00
Pieter-Jan Briers 74b38c49fb
Materials system. (#84) 2018-07-27 17:11:58 +02:00
Pieter-Jan Briers cb439ba39a Remove compiler warnings. 2018-07-26 23:55:34 +02:00
Pieter-Jan Briers b34591ab59
Data Rework Content Edition (#82)
* WiP Data Rework.

* Convert stationstation to new map format.

* stationstation.yml v2

* Update submodule
2018-07-26 23:38:16 +02:00
Acruid 8c874c76dc Base Update() method was removed from components in engine, added some basic ECS systems to update the components. (#79) 2018-07-26 23:26:19 +02:00
Pieter-Jan Briers ad5c82fec9
APC & SMES appearances. (#78)
* CEV-Eris SMES sprite as RSI.

Has been modified so that the light overlay states use alpha blending.

* Add tiny glow to SMES display sprite.

* Appearances work v2

* More WiP

* RoundToLevels works correctly on even level counts now.

* SMES -> Smes because MS guidelines.

* CEV-Eris APC sprite.

* APC visuals.

* Reduce SMES scale again to normal levels.

* Update submodule
2018-07-17 11:39:55 +02:00
indeano 2d23c6a45e Some work on directing storage component's client updates (#75)
* adds storage system, primitive client-unsubscribing of storage updates

* strips out currently unneeded system

* channel to actor

* closestorageui todo added

* thorough logging, actor to session, validates session before sending packets

* offloads session status check to an event handler
2018-06-20 15:49:13 -05:00
PJB3005 86e600bec7 Merge remote-tracking branch 'origin/18-06-09-gridentities' 2018-06-13 04:26:04 +02:00
Pieter-Jan Briers e4c378cb8f Update submodule & clean up code with Timer.Spawn(). 2018-06-11 20:30:52 +02:00
Pieter-Jan Briers 10999dc905 Grid map detaching: content edition. 2018-06-10 01:03:49 +02:00
Pieter-Jan Briers d8540cdbd9 Comments are important. 2018-05-30 17:05:06 +02:00
Pieter-Jan Briers 0dad2c863b Fix powernet spreading edge cases. 2018-05-30 16:44:35 +02:00
Pieter-Jan Briers 179b2534d2 Fix load & supply desync upon merging powernets. 2018-05-30 16:22:51 +02:00
Pieter-Jan Briers ff0b1bfd05 Fix power warnings & sort errors. 2018-05-30 16:10:36 +02:00
Pieter-Jan Briers 097c876578 More data in power debug tool. 2018-05-30 14:23:08 +02:00
Pieter-Jan Briers 7e5c764b50 Make power node not die on map load. 2018-05-27 23:39:14 +02:00
Pieter-Jan Briers 77222824c3 New map! 2018-05-27 23:27:32 +02:00
Pieter-Jan Briers e36033a3ac Power improvements:
* crashes fixed
* made lights an RSI.
2018-05-27 21:45:31 +02:00
Pieter-Jan Briers ab91d358ef Power is now frame time aware and actually works correctly. 2018-05-27 19:33:27 +02:00
Pieter-Jan Briers 147aad5064 Some work on the mess that is this power code.
Jesus.

Tons of fixes, refactors and other things.
The powernet's code is still awful though.
2018-05-27 16:44:50 +02:00
Pieter-Jan Briers f1ec10e3e1
Input Refactor (#72) 2018-05-27 10:13:33 +02:00
Pieter-Jan Briers b13d100107
Fixing issues sonar pointed out, content changes. (#71)
* Fixing issues sonar pointed out, content changes.

* Update submodule.
2018-05-26 18:28:37 +02:00
Pieter-Jan Briers 85b4be3ff4
Updates for the netcode refactor. (#69)
* Updates for the netcode refactor.

* Change HandsGui to control.

Why? No idea but drawing of it works again.

* Fix hand change sync.

* Update submodule
2018-05-13 11:54:21 +02:00
Pieter-Jan Briers 20cf3a6a9b
Rename IEntity.GetComponents to GetAllComponents. (#68)
* Rename IEntity.GetComponents to GetAllComponents.

This is to avoid confusion.
A single s to distinguish it from GetComponent() is quite hard to miss.

* Update submodule.
2018-05-10 19:21:15 +02:00
Pieter-Jan Briers 205a4fc530
Fixes server shutdown crash & client error log spam. (#67) 2018-05-10 18:52:44 +02:00
clusterfack 3915b735ae Examine System (#65)
* Examine System

* Adds some relevant comments
2018-05-09 16:34:26 +02:00
Pieter-Jan Briers 61a1e769d7 Sprite refactor (#63)
* Sprite refactor compatibility.

* Sprite-level rotation.

* Dude it works.

Welder now has an unshaded flame toggle!

Door component no longer on client!

* Remove debug text.

* Update.
2018-05-08 01:20:15 -05:00
indeano 2ba705ffe9 Fixes server crashing when attempting to drop an empty hand's contained entity. (#66)
* fixes server crash on empty hand drop

Fixes issue with server crashing when client requests for an empty hand to drop its entity.

* fixes drop crash by checking for null in container contains

* removes old change - time to learn to reset properly
2018-05-07 04:05:27 -05:00
clusterfack 78fa747973
Adds click parsing entity system (#64)
* Adds click parsing entity system

Instead of every entity system receiving the message and deciding if it individually wants the message, and verifying player information. The click parser system receives the message and parses which system to send it to based on clicktype and sends it.

* Submodule update
2018-05-01 02:52:37 -05:00
clusterfack c33c227d95 Inventories (#61)
* Bully the fuck out of inventory shit
Inventory Stuff
Inventories technically work
It works technicaly speaking
Yeah this part too
Lets do it!
Inventories completed
Motherfucker

* Remove unnecessary usings and fix one thing

* Submodule update

* Adds a bunch of various clothing prototypes for each current inventory slot
2018-04-25 13:42:35 +02:00
clusterfack ea05c593aa Storage Component (toolboxes, backpacks, etc) (#57)
* Fix
Finish and update submodule
Comments code, changes network messages
FIXES THE USE INTERACTION SO YOU CAN ACTUALLY ACTIVATE THINGS NOW
Need engine commits
We'll figure out what to do about this shit later eh mates? Maybe have a script in the build process that automatically moves them over to godot/scenes
Changes some prototypes and fixes stuff
Fixes some more bugs, makes storage values show up properly
Part 3
Part 2
Storage Take 1

* Doneso
2018-04-22 13:11:38 +02:00
Pieter-Jan Briers 74193d1182
Compatability with sawmills. (#60) 2018-04-19 20:23:49 +02:00
Pieter-Jan Briers 41bda76980
Minor stuff: (#58)
* Minor stuff:

* Making a file called DISABLE_SUBMODULE_AUTOUPDATE in BuildChecker/ makes it not always run git submodule update.
* Added .mypy_cache to .gitignore.
* Made default platforms x64 (from Any CPU).

* Make git hooks +x.
2018-04-19 20:15:36 +02:00
Pieter-Jan Briers 9989d6db75
Updates submodule (#56)
* Adds audio to the content repo.

* Content repo updates

* I forgot this AGAIN.
2018-04-12 23:56:43 +02:00
Pieter-Jan Briers 6704245a41
The Wait Is Over. (#49)
* Move submodule to Godot

* Update submodule AGAIN.

* Update project files.

* Remove WearableAnimatedSprite from prototypes.

* Remove content repo resource copier.

* Update submodule.

* Fix resource handling.

* Content.Client compiles by commenting out hands GUI.

* Update submodule.

* Fix prototype textures and update submodule.

* Update Submodule.

* Update submodule SOME MORE!

* Random WiP shit I guess

* Make omnisharp not choke on buildchecker.

* Update submodule.

* Highly WiP broken HandsGui code.

* Ok maybe let's not insult omnisharp.

* Fix annoying Omnisharp warning.

* Update submodule.

* Update submodule.

* Hey I forgot to push this but it didn't conflict!

* Fix hands GUI on godot.

* Update submodule.

* Obligatory submodule update.

* Work on exports.

* Work on exports.

* Update submodule.

* Update submodule.

* Fix dumb case mismatch between content and engine

* work pls.

* This maybe.

* Now!

* Update submodule.

* update submodule.

* Some WiP work on exporting aaah.

* OK READY FOR THE BUILDS SERVER.

* Probably should've made those commits in a different order.

* DO THE THING

* update submodule.

* Updates for effects system.

* Update submodule.

* Make file/line numbers show up on Windows Godot.

* Set submodule to master.
2018-04-07 15:31:38 +02:00
clusterfack 128728bfcb Adds weapons (#48)
* Adds weapons

- Adds melee weapons
- Adds projectile weapons
- Adds hitscan weapons (like lasers)

* Adds a separate sprite for projectile weapons
2018-04-06 00:32:51 +02:00
Acruid 071ed3f1ed Turret Entities (#38)
* Spotlight Turret.

* Used new turret sprite, credit: @Lobstrex (Lob)#5692

* Moved AimShootLifeProcessor.cs to content.

* Update Submodule Try 2.
2018-03-15 20:41:31 +01:00
clusterfack 98bd1552b9 Fixes power components (#39)
Fixes the power components not having node set if they get a node added as a component in OnAdd()
2018-03-09 17:59:19 +01:00
clusterfack 7554d51b0a Full interaction system (#43)
* Full interaction system

Has support for ranged interactions, and afterattacks, no longer relies on the clickable comopnent and you can click on no component and it will still function

* yes
2018-03-09 17:59:03 +01:00
Acruid 3f89f3f0f7 InputSystem Messages (#37)
* Misc Cleanup.

* Removed BoundKeyChangeEventArgs.

* Nothing uses EntityEventArgs now.

* Rebase fixes.

* Updated Engine.
Fixed .gitmodules file.
2018-03-04 03:07:09 +01:00
Acruid b005d661f8
Component Messaging Rework (#36)
* Remove DiscoBall.

* Changes `IEntity.AddComponent(IComponent)` to `IEntity.AddComponent<T>`.

* Pulled ComponentManager registration out of Component into Entity.

* Killed component message params.

* Updated engine submodule.
2018-02-24 11:48:23 -08:00
clusterfack 05d4b2793b
Adds wirecutter, powernet wire interaction (#34)
So it begins, the first of many interactions. Wirecutters cut powernet wires.
2018-02-13 00:07:50 -06:00
Acruid 3dfce70fdc Map Blueprint Save/Loading (#32)
* Change entry point to new system.

* Map saving/loading works.

* Cleans up old code.

* Saving and Loading of blueprints works.

* Saving and Loading of blueprints works.

* Updated the nuget 'YamlDotNet' package to 4.3.0.

* Submodules are trash
2018-02-06 21:34:36 -06:00
clusterfack 059832d324
Adds Basic Tools (#27)
* Basic Tools

* Adds tool prototypes
2018-02-06 19:03:36 -06:00
clusterfack 1452502fbf Interaction Entity System (#26)
* Interaction Entity System

* ye

* Update submodule

* Requires engine update to function, but doesn't use shitcode

* Fix conflicts

* Fix conflicts but for real

* Update submodule
2018-02-05 12:57:26 -07:00
clusterfack 1f22f8ab6a Power System (Complete) (#25)
* Power Commit 1

* Commit 2

* Powernet Part2, All components essentially complete

* Commit 4

* Commit 5

* Commit 6

Creates prototypes

* Finishes powernet code alpha

Adds prototypes and logic for powernet updating and regeneration

* Adds onremove functionality to all components

Without these bits of logic nothing makes any sense!

* And this

* Fixes a lot of bugs

* Fix powernet thinking devices are duplicates

* Fix bug and add comments

* woop woop thats the sound of the police
2018-02-03 21:35:42 -07:00
Acruid 988b2b2bc5 EntityUid Type (#23)
* Wraps Entity Uids in their own type.

* Update submodule I think.
2018-01-20 23:46:31 +01:00
clusterfack 5ee56a4cd3 Updates submodule (#22)
* Updates submodule

Fix connect not entering server (with correct toml config) and compile error, updates submodule
Server still has an issue with toml file pointing towards sandbox instead of content and roundstart object initializations

* Updates more stuff

Needs my most recent PR on ss14 to function

* Submodule updated for real this time
2018-01-18 20:00:35 +01:00
Pieter-Jan Briers 074e6d8b62 Fix code to work with engine update 2017-10-29 21:43:42 +01:00
Pieter-Jan Briers 7f196fc415 Doors! (#12)
* Doors WiP

* Kinda seem to work now?

* Finished

* Oh yeah maybe enable that.

* It works except it doesn't

* Undo formatting changes

* BuildChecker too
2017-10-22 23:48:01 +02:00
Pieter-Jan Briers 6f89d0672d Urist's damage and health thing. (#10)
* Add prototype for temperature testing entity.

* Add Damageable, Destructible, Temperature. Add a prototype based on those.

* Works and cleaned up.

* Nerf
2017-10-07 15:15:29 +02:00
Pieter-Jan Briers 7597cd9172 Interactable component system. (#9)
* InteractableComponent v1. Broken edition

* It works!
2017-10-06 21:05:21 +02:00
PJB3005 26e9c37be1 Functional GUI! 2017-09-30 16:56:19 +02:00
PJB3005 c7de994183 Item pickup seems to work, crash due to netcode. 2017-09-30 12:17:45 +02:00
PJB3005 b0b220f085 Hand switching works! 2017-09-29 18:38:27 +02:00
PJB3005 f40cffa746 Fix init ordering issue with hands. 2017-09-26 23:10:10 +02:00
PJB3005 4f2d059de4 Simple network replication for hands, untested. 2017-09-26 21:27:48 +02:00
PJB3005 3e0bcddd4d Done I hope. Needs testing and type checker updates.
waiting on https://github.com/space-wizards/space-station-14/pull/422
2017-09-25 20:52:39 +02:00
PJB3005 73ae408e20 More inventory work. APIs implemented.
Still need to do prototype loading and test cases.
2017-09-24 23:19:47 +02:00
Pieter-Jan Briers 66483bdd72 Can* API functions by Yota's request. 2017-09-24 22:24:54 +02:00
PJB3005 f6e265bccb Inventories WiP 2017-09-24 21:09:26 +02:00
PJB3005 60ff292f14 Fix content assemblies not being loaded.
They were put in the wrong directory.
2017-09-24 16:41:15 +02:00
Pieter-Jan Briers 55b9e367b3 x64 build platform. 2017-09-23 00:35:08 +02:00
PJB3005 7fda197391 Remove SFML from shared and server. 2017-08-21 23:51:13 +02:00
PJB3005 e46e4a7993 Fix SFML references. 2017-08-19 11:24:49 +02:00
PJB3005 090fb0f417 Give content YamlDotNet, OpenTK and SFML references. 2017-08-13 14:58:31 +02:00
Pieter-Jan Briers 133763c43c Revisit content assembly copying, now much neater. 2017-08-07 00:31:11 +02:00
Pieter-Jan Briers 4454525e6d Add script to zip up release builds. 2017-08-06 23:15:39 +02:00
Pieter-Jan Briers 486bb9f0ef Make content DLLs be copied via post build events instead 2017-08-06 14:50:03 +02:00
Pieter-Jan Briers 8f814193b5 Set content output directories to bin/project/Assemblies
Build -> run client now
2017-08-06 13:02:04 +02:00
Pieter-Jan Briers 2313f73678 Standardize to x86 build target on all projects. 2017-08-04 23:09:42 +02:00
PJB3005 02c67c851d Basic content repo outline.
Code's here, no tooling to generate content packs yet, however.
2017-08-04 14:24:01 +02:00