Commit Graph

362 Commits

Author SHA1 Message Date
Pieter-Jan Briers 75aa9541e0
Equip clothing to preview dummies in the lobby. 2020-01-20 10:30:06 +01:00
Pieter-Jan Briers 03bfb22559
Fix profile editor not correctly enforcing single high-priority job. 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
ShadowCommander 57c3f63a26 Fix HandsGui StatusPanel capturing input (#525) 2020-01-20 01:31:46 +01:00
DamianX f08455073a Unset ready status when opening character setup (#522)
* Close character setup when joining the game

* Unready when opening character setup instead
2020-01-20 00:15:39 +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
DamianX 1bd17f73b1 Actually save when pressing "save and close" (#523) 2020-01-19 14:54:11 +01:00
Pieter-Jan Briers f86ad6175e
Basic implementation of jobs in the character profile. 2020-01-19 09:42:26 +01:00
DamianX 802fda3cfd Added option to generate random character name (#519)
* Added option to generate random character name

* awk '!seen[$0]++'
2020-01-18 23:09:14 +01:00
DamianX b5feb0db2a Fixed character setup save button (#518) 2020-01-18 16:57:11 +01:00
Pieter-Jan Briers 4b60c03688
Fix Sex not showing in character preview panel. 2020-01-18 04:38:56 +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
ShadowCommander d03da83fda Inventory Input (#503)
* Create ItemSlotButton

* Refactor inventory buttons

Refactor so that KeyBind handling of inventory and hands are the same.

* Refactor InventoryInterfaceController to call ItemSlotManager with entities

This change allows HandsGUI and InventoryInterfaceController to just call ItemSlotManager.OnButtonPressed with an entity instead of a slot.

* Add CooldownCircle to ItemSlotButton

This allows Hands and Inventory to have cooldown circles on their ItemSlots.

* Refactor HandsGUI to use ItemSlots

This allows functionality and GUI to be the same between Inventory and Hands.

Added clicking empty hand to switch ActiveHand to clicked hand.

* Implement CooldownCircle in ItemSlotManager

Reorganize files
2020-01-17 15:43:20 +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 da932c5caa
Styling for Slider. 2020-01-15 14:27:47 +01:00
Pieter-Jan Briers e0a4735fe2
Switch to TG hair sprites.
This removes the need for a separate shader because they're multiply-based instead of additive like /vg/ or Bay.
2020-01-12 02:04:13 +01:00
Pieter-Jan Briers f60b0fce7d
Fix hair not syncing style correctly.
Fixes #502
2020-01-12 01:58:05 +01:00
Pieter-Jan Briers 3cceb35445
Fix Stack item status not updating correctly. 2020-01-12 01:58:05 +01: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
Acruid 4773aad40c Added the ID slot of the player inventory to the UI, next to the tool belt. 2019-12-30 11:42:31 -08:00
Pieter-Jan Briers 26c8995dad
Fix low wall layering.
This makes windows look great.
2019-12-24 13:40:13 +01:00
Pieter-Jan Briers 43cb54bb21
Override orientation of handsgui sprites.
Fixes #474
2019-12-24 01:22:20 +01:00
Pieter-Jan Briers 4f3f82f27f
Fix cooldown circles not being centered. 2019-12-22 21:50:40 +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
Acruid ece6e0a833 Map & Grid Entities (#493)
* Client & Server load with new scene hierarchy.

* Engine Update.
2019-12-22 13:23:38 +01:00
Pieter-Jan Briers 1e696edcff
Use C# 8. 2019-12-17 16:09:10 +01:00
DamianX 79ee241bb7 Fixed client unknown component warnings (#491) 2019-12-15 14:12:33 +01:00
DamianX 63b98f26a6 Fixed a bunch of unused variables warnings (#492) 2019-12-15 14:12:23 +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 689d16ee65
Outlines moved to InteractionOutlineComponent, now change color when in interaction range. 2019-12-06 02:08:17 +01:00
Pieter-Jan Briers a912c999a9
GameScreen moved to content. 2019-12-06 00:41:30 +01:00
Pieter-Jan Briers 26da24c3c5
UI Layout v2. (#489)
* UI Layout v2.

* Lobby fixed.
2019-12-05 16:00:03 +01:00
Pieter-Jan Briers e179e89c03
Fix crash on shutting down client. 2019-12-04 01:23:14 +01:00
Pieter-Jan Briers 7c54a3c923
Fixes window destruction causing a crash.
Fixes #473
2019-11-29 17:08:24 +01:00
L.E.D 8a90e5d186 Eliminate unnecessary whitespace in examine (#479)
* eliminate unnecessary whitespace in examine

* oops
2019-11-28 14:38:23 +01:00
Peter Wedder 45567c7acc Scrollbar min size. (#464) 2019-11-28 14:28:33 +01:00
ShadowCommander 590cb1e85c Fix crash on restart (#463)
Clears inventory slots before disposal when ClientInventoryComponent is removed.
2019-11-26 16:26:47 +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
moneyl ce54c489eb Add null check before using prototype in ReagentDispenserWindow (#461)
Should fix #460. I'm unable to reproduce it myself, but the stack trace shows the crash occurring on the edited line, likely because `prop` is null. This fixes that by adding a null check before using `prop`.
2019-11-24 00:46:48 +01:00
L.E.D 35f9de3366 Make examination of items in hand possible (#459) 2019-11-23 21:57:44 +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
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
Acruid 8b1be6edee Fixes the client crashing when closed. When disconnecting from a server, _playerManager.LocalPlayer is set to null before the entity components are disposed. Previously this would throw a nullref exception in ClientStatusEffectsComponent, now it properly checks for the null value. This resolves #435. 2019-11-16 14:39:52 -08:00