Commit Graph

287 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
Pieter-Jan Briers 7f188b0f44
Disable sprinting.
Now you always sprint.
2019-12-07 17:16:56 +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
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
dylanstrategie 4198b6dc4e Medkits are now a container plus filled version (#457) 2019-11-23 21:39:12 +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