Commit Graph

4990 Commits

Author SHA1 Message Date
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
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
ZelteHonor 62b31eee00 Change localize field to be readonly. (#432) 2019-11-12 22:39:18 +01:00
Pieter-Jan Briers 841bb101c5
Visualize melee weapon cooldowns in HUD. 2019-11-12 01:43:11 +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
metalgearsloth 6529542277 Fix overlay not clearing on respawn (#423)
I'm a derp.
2019-11-09 12:09:58 +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
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 3a0856505d
Correctly clear inventory UI when HumanInventoryInterfaceController detaches.
Fixes #405
2019-10-25 11:49:26 +02:00
Pieter-Jan Briers 69796bf1bc
Make targeting doll less ugly. 2019-10-22 23:16:12 +02:00
Pieter-Jan Briers 9ac0e02574
Fixed client crashing when destroying certain entities. 2019-10-22 00:07:36 +02:00
Pieter-Jan Briers f5cbbb5c84
Fix build on Framework. 2019-10-21 23:45:49 +02:00
Pieter-Jan Briers 9a1e4450d8
Make ID console fancier. 2019-10-21 22:54:16 +02:00
Pieter-Jan Briers 563dda69d4
Shorten wires menu by default. 2019-10-21 22:52:58 +02:00
Pieter-Jan Briers 44c9feaebf
Fix Leave button in lobby being off to the right. 2019-10-20 22:39:22 +02:00
Pieter-Jan Briers c457a2603a
Document combat mode and change the keybind to Num1.
So I don't CONSTANTLY hit it while alt tabbing.
2019-10-20 22:31:49 +02:00
Pieter-Jan Briers 981c36dbdb
Give reagent dispenser reagents window a vertical minimum size. 2019-10-20 01:40:13 +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 743ede2243
Implement more new styling stuff. 2019-10-18 14:28:24 +02:00
Pieter-Jan Briers 0edccd8934
Improve spacing on Escape Menu. 2019-10-18 14:26:45 +02:00
Pieter-Jan Briers 4d5c34bd58
Increase horizontal margins on new buttons. 2019-10-15 13:59:25 +02:00
Pieter-Jan Briers f0fb3eb434
Fancy new style buttons. 2019-10-15 13:13:21 +02:00
Pieter-Jan Briers 7de97eeb2c
Fix icon smoothing not applying after entities are deleted. 2019-10-14 17:09:45 +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 be9dc90738
Disable unlit layers on unpowered airlocks.
Fixes #389
2019-10-13 16:39:21 +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
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
DamianX a4aab7dbd1 Vending machines now show entity name rather than prototype ID (#355) 2019-09-20 20:39:54 +02:00
DamianX 892d0ee162 RegisterIgnore WirePlacer (#351) 2019-09-19 16:52:53 -07:00
Acruid cbea6bf41f The SubFloorHideComponent can now be properly started/stopped. Previously this did nothing. 2019-09-19 11:43:46 -07:00
Pieter-Jan Briers 6c97b63e59
Property animations test component. (#340) 2019-09-18 22:14:21 +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
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
Víctor Aguilera Puerto 3f4c9a8326 Use improved ItemLists (#335)
* Use improved ItemList

* Address reviews

* Update submodule
2019-09-13 15:35:06 +02:00
Pieter-Jan Briers 97e18b9ed4
Fix camera recoil restore overshooting at low framerates. 2019-09-11 20:08:43 +02:00
DamianX b9f6ea68ce Layer popup messages above UI windows (#330)
* Layer popup messages above UI windows

* Added PopupRoot
2019-09-08 16:13:09 +02:00
DamianX 63bb4c4d0a Create BoundUserInterfaces with DynamicTypeFactory (content) (#332)
* Create BoundUserInterfaces with DynamicTypeFactory (content)

* maybe this time I did it right
2019-09-08 16:05:34 +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
Víctor Aguilera Puerto 34f4731c9b Fix bug where research console GUI didn't close correctly (#331) 2019-09-06 08:13:17 +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
DamianX f3b460c8b4 IDs and access (#319)
* something about access

* Fixed deny animation
2019-09-01 22:57:22 +02:00
ShadowCommander 0329150109 Fix OpenStorage button in HumanInventoryWindow (#322) 2019-09-01 22:50:13 +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
Pieter-Jan Briers b40a96f545
Make TabContainer spaced a bit more. 2019-08-30 09:39:22 +02:00
Pieter-Jan Briers 5858de0b08
More parallax debugging stuff. 2019-08-29 14:36:31 +02:00
Pieter-Jan Briers ffc9f10399
Explicitly dispose ImageSharp images. 2019-08-28 12:08:10 +02:00
Pieter-Jan Briers ecb7cd3c66
Update all the NuGet packages & submodule. 2019-08-27 22:39:32 +02:00
Pieter-Jan Briers 55f9411493
Verbs don't open an invisible popup if there's no entities. 2019-08-25 22:53:36 +02:00
Pieter-Jan Briers 7306bcc35a
Fix VerbSystem crash.
Fixes #317
2019-08-25 12:54:55 +02:00
Pieter-Jan Briers 77216af44e
Don't copy project dependencies for content projects.
#850
2019-08-22 18:44:35 +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
DamianX f0053f15bf Added pickaxe, asteroid rock and floors (#301) 2019-08-21 22:50:15 +02:00
Pieter-Jan Briers c207297c57
Merge branches 'pseudo-classes', 'input-refactor' and '19-08-21-update-submodule' 2019-08-21 17:25:01 +02:00
Pieter-Jan Briers 6ca70b0156
Apply suggestions from PR 2019-08-21 17:24:05 +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 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 534af65f7c Fixed inventory button not updating when window was closed (#304)
* Fixed inventory button not updating when window was closed

* Only add the event handler once

* uhhhh

* UHHHHHH
2019-08-16 21:52:00 +02:00
CatTheSystem 3b48926d75 Help me 2019-08-15 21:26:56 +03:00
Pieter-Jan Briers b38a014b02
Fix build 2019-08-15 15:49:16 +02:00
Pieter-Jan Briers aed1a0d985
And I messed up again. 2019-08-14 22:06:52 +02:00
Pieter-Jan Briers 9cb37a6376
UI system refactor; submodule update. 2019-08-14 22:04:35 +02:00
Pieter-Jan Briers 6be135a137
Fix human inventory window ID slot using mask texture. 2019-08-14 21:10:56 +02:00
DamianX 20c387158a RegisterIgnore vending machines (#300) 2019-08-14 18:15:26 +02:00
DamianX 88920696f3 Vending Machines (#296)
* Vending Machines

* addressed review
2019-08-14 10:49:28 +02:00
Pieter-Jan Briers afd1215b03
Ignore computer component on client. 2019-08-12 18:47:49 +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
ShadowCommander b38e780f01 Updates Submodule and updates Inventory Button variables 2019-08-09 15:47:59 -07: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
Pieter-Jan Briers 3c09c18943
Update submodule, noise removal, parallax optimizations. 2019-08-07 18:10:55 +02:00
ShadowCommander 7454c62ff2 Upgraded ChatBox and fixed FocusChat hotkey
Upgraded ChatBox to use Keybinds.
Put cursor at the end of text of ChatBox history.
Fixed FocusChat hotkey getting called when typing in a LineEdit.
Added Keybinds.
2019-08-05 22:59:37 -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 1d9d01b355
Update submodule. 2019-08-01 00:13:58 +02:00
Pieter-Jan Briers a7f1520d1f
Fix speech bubble UI blocking world interaction. 2019-07-31 16:45:54 +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 41b72d5aa2
Remove visibility set from StorageWindow. 2019-07-31 13:48:50 +02:00
Pieter-Jan Briers b6ab0298f4
Make sure speech bubbles stay below the HUD. 2019-07-31 13:43:59 +02:00
Pieter-Jan Briers ad9d7573d6
Fix crash with speech bubbles maybe. 2019-07-31 13:17:06 +02:00
Pieter-Jan Briers 0086e60b6a
Speech bubbles yo. 2019-07-30 23:13:05 +02:00
Pieter-Jan Briers c635aeba79
Fix crash related to game HUD upon joining. 2019-07-26 17:56:07 +02:00
Pieter-Jan Briers d906bcda03
Eris low walls & windows.
Still needs work blocked by better entity parenting, but oh well.
2019-07-26 13:53:18 +02:00
Pieter-Jan Briers 248e3f686b
Fix APC window. 2019-07-24 12:36:18 +02:00
Pieter-Jan Briers 1fbb5915aa
Better inventory window, inventory buttons on game HUD.
Part of #272
2019-07-23 23:24:47 +02:00
Pieter-Jan Briers 4d202a7678
Use new inventory icons for hands. 2019-07-20 16:02:19 +02:00
Víctor Aguilera Puerto 5abcb680ab Ignore some server-only components. (#276) 2019-07-20 14:26:50 +02:00
Pieter-Jan Briers c675886713
Separate inventory & character UI. 2019-07-20 14:07:11 +02:00
Pieter-Jan Briers f5d319bc3a
Adds explicit inventory window. 2019-07-20 14:07:11 +02:00
Pieter-Jan Briers b34a68a519
Remove instances of Visible = false for windows. 2019-07-19 16:12:02 +02:00
Pieter-Jan Briers 18efec6472
Game HUD improvements:
Added sandbox button, needs implementation.
Tutorial bound to F1.
Improved color of buttons.
2019-07-19 14:21:36 +02:00
Pieter-Jan Briers 1ba460e1a6
Update submodule, entity spawn rewrite. 2019-07-19 12:40:28 +02:00
Pieter-Jan Briers c0717ed6a3
Do not show character interface for observers. 2019-07-19 11:15:33 +02:00
Pieter-Jan Briers 14d538997e
Remove some redundant declarations from ChatBox.cs 2019-07-19 11:01:32 +02:00
Pieter-Jan Briers 42a41036ad
Great I managed to forget about the local button too. 2019-07-19 11:00:18 +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 52a6d9ff43
Better margin on the chat box. 2019-07-19 10:06:36 +02:00
Pieter-Jan Briers 8621d61278
Chat improvements:
Improved chat box styling.
"All" button now works as a toggle for.. all buttons!
Also improved persistence of the chat box when switching to/from lobby.
2019-07-19 01:23:16 +02:00
Pieter-Jan Briers 96516fa288
Make scrollbars less opaque. 2019-07-19 01:21:48 +02:00
Pieter-Jan Briers 90173f6147
Change lobby chat placeholder. 2019-07-19 01:21:22 +02:00
Pieter-Jan Briers a3b0127328
Add placeholder for game chat. 2019-07-19 01:20:43 +02:00
Pieter-Jan Briers b281cc28a1
Fix crash with ConstructorComponent. 2019-07-19 01:18:45 +02:00
Pieter-Jan Briers 40eca95661
Fix build. 2019-07-18 23:37:09 +02:00
Pieter-Jan Briers 6de6c6534c
De-capitalize "Esc". 2019-07-18 23:34:41 +02:00
Pieter-Jan Briers 068c997519
Switch to Noto Sans Display in CSS. 2019-07-18 23:34:40 +02:00
Pieter-Jan Briers c529f38517
Tutorial has a window title. 2019-07-18 23:34:40 +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
tentekal 92668432a7 Chat Filter using Flag Enums. (#270)
* Backing up local repo before upgrading OS, minor work on chat UI

* Cleaned out unnecessary modded files

* Got a working version of filter toggles based on flag enums

* Added localization to chatbox buttons

* Should actually fix modified proj files, thanks PJB

* Fixed enum operators to unset instead of toggle

* Added a local client class for storing net message details

* Reworked RepopulateChat to pull from a StoredChatMessage list

* Fixed messages dissapearing

* Re-ordered logic to be a bit more efficient with re-drawing chat
2019-07-18 23:32:48 +02:00
Pieter-Jan Briers ce1eab9181
Update submodule, removal of window AddToScreen. 2019-07-18 22:49:49 +02:00
Pieter-Jan Briers 73511d9d8f
Student cap icon for the tutorial. 2019-07-17 23:36:07 +02:00
Pieter-Jan Briers 4b9c4022b8
Adds character menu, crafting menu and tutorial to the top left. 2019-07-17 21:37:58 +02:00
Pieter-Jan Briers 69f9da944d
Fix mouse input being "broken".
I accidentally made a screen-covering control so mouse input got eaten.
2019-07-17 17:08:58 +02:00
Pieter-Jan Briers 391d4a6c67
Better top menu styling. 2019-07-17 16:38:08 +02:00
Pieter-Jan Briers 806e95b382
Fix connecting to a server with the lobby enabled. 2019-07-15 18:57:17 +02:00
Pieter-Jan Briers cdcafbada6
Start working on those top left buttons in the UI draft. 2019-07-14 23:02:45 +02:00
Pieter-Jan Briers 837a906538
Make Status Effects UI better positioned. 2019-07-12 19:29:53 +02:00
Pieter-Jan Briers b7d5297e9f
Show health status on the HUD, shoddily. 2019-07-08 21:11:42 +02:00
Pieter-Jan Briers 558f6ab8a5
Removal of TrySpawn* methods, update submodule. 2019-07-07 22:24:44 +02:00
Pieter-Jan Briers 215885a436
Disable combat mode. 2019-07-06 23:07:13 +02:00
Pieter-Jan Briers 4221fecff6
Update content repo for CLYDE 2.0. 2019-07-06 19:20:20 +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
Pieter-Jan Briers 4a4fcad7ef Airlocks use unshaded overlays for the lights. 2019-06-02 13:40:56 +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
moneyl e07c3c368f APC gui colored external power state (#244)
* Adds colored external power state to APC gui

* Move power state colors to StyleSheet
2019-05-29 18:07:05 +02:00
Pieter-Jan Briers 56bccdbc3e Update submodule, update NuGet dependencies. 2019-05-29 14:04:57 +02:00
moneyl 740c62330e Adds charge percentage label to APC (#243) 2019-05-28 20:50:12 +02:00
Pieter-Jan Briers 9c3587b00e Fix compiler warnings and remove dead code. 2019-05-28 00:30:34 +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
moneyl 241aa353e9 Apc variable charge bar color (#240)
* Make Apc chargebar color dependent on charge amount

* Adjust orange color and increase brightness
2019-05-28 00:15:13 +02:00
moneyl ce9c8785d6 Add window title and breaker label to ApcBoundUserInterface 2019-05-24 18:24:07 -04:00
Pieter-Jan Briers 54449038ef
Merge pull request #220 from Moneyl/no-tscn
Remove GUI dependence on tscn files
2019-05-24 23:23:58 +02:00
moneyl b9f7c65c05 Use SetAnchorPreset instead of manually setting each anchor 2019-05-24 16:25:44 -04:00
moneyl 338a8e463e Move GUI size init into constructor
Setting the initial size in `Initialize` has no effect on the windows size so it's set in the constructor instead.
2019-05-24 16:25:44 -04: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
moneyl f489bee686 Merge branch 'master' into no-tscn 2019-05-19 02:14:24 -04:00
moneyl bc3942127b Fixed construction menu default size being huge 2019-05-17 10:36:29 -04:00
moneyl 4bb02d64fb Remove storage menu dependence on tscn file 2019-05-17 10:35:41 -04:00
moneyl e40b775f7c Added properties for several ui controls to ApcWindow
By PJBs suggestion. Cleaner to do this instead of repeatedly calling GetChild. Also changed ApcBoundUserInterface._window from an SS14Window to an ApcWindow to avoid extra type casting.
2019-05-16 13:24:55 -04:00
moneyl ddcdeca4ea Removed construction menu dependence on tscn file
One minor issue remains with this that I can't resolve. The construction window starts off much larger than the tscn dependent version on master. It can be shrunk manually and it'll look the same, but it'd be nice to keep it as it was. Tried manually changing the window size and changing the size flags but couldn't get it to work as I wanted.
2019-05-16 13:24:55 -04:00
Pieter-Jan Briers b64643ecd6 Adds tutorial, remap some buttons to be more in line with SS13. 2019-05-16 16:25:06 +02:00
Pieter-Jan Briers 818ee83440 Remove IDisplayManager dependency from SS14Window, content changes. 2019-05-16 14:28:34 +02:00
Pieter-Jan Briers 91de6f80b1 Fix player list being blank when re-joining lobby. 2019-05-16 14:18:33 +02:00
moneyl 2b0ca2dd8b Moved APC controls creation into the ApcWindow constructor 2019-05-15 12:31:54 -04:00
moneyl bec187d997 Slight chatbox changes to fit existing code style and naming 2019-05-14 23:52:00 -04:00
moneyl 2917a87ce7 Removed APC gui dependence on tscn file 2019-05-14 23:49:53 -04:00
moneyl 3fa2e0c976 Removed chatbox dependence on tscn file
This turned out to be much simpler than how I was initially making it. The important thing to note is that without setting the margin and anchor values for the chatbox itself (not it's children) it won't show up on the screen.
2019-05-14 17:43:06 -04:00
Pieter-Jan Briers e68a5c8402 Move Escape Menu to Content. 2019-05-14 15:19:41 +02:00
Pieter-Jan Briers cbca48ebbb Add online player list to lobby UI. 2019-05-14 12:54:47 +02:00
Pieter-Jan Briers a78a07d0c4 UI styling improvements.
Especially for the lobby.

CSS really paying off here.
2019-05-14 09:57:51 +02:00
Pieter-Jan Briers ad3b3c9f4f Add explicit placeholders to the lobby. 2019-05-14 08:38:49 +02:00
Pieter-Jan Briers 96fbde3413 Adds a UI element to act as placeholder. 2019-05-14 01:19:25 +02:00
Pieter-Jan Briers 88c29abe5e Transition lobby from tscn to C#, localization support for lobby. 2019-05-14 00:23:58 +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 57bcb2a16d Make content UI scaling aware. 2019-05-11 16:05:41 +02:00
Pieter-Jan Briers c0edf2aeed Clean up NanoStyle:
1. Run code formatting.
2. Condense some rules down.
2019-05-08 23:19:17 +02:00
Pieter-Jan Briers eacfa34c99 Fix parallax generation.
It broke when IoC got made thread local,
since it is done in the thread pool.
2019-05-08 22:01:14 +02:00
Pieter-Jan Briers 0ccefebc52 Entering text into lobby chat box does not release focus. 2019-05-08 16:49:59 +02:00
Pieter-Jan Briers d15998ed16 Make sure SpeciesUI defaults to having a correct icon. 2019-05-08 15:32:30 +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 1fa63179d1 Fix character UI being broken.
Also transition everything away from tscn files.
2019-05-05 23:14:40 +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 deaae06787 Remove Godot support. 2019-05-05 01:54:28 +02:00
Pieter-Jan Briers ec1a4c6601 Use Unicode ³ for lathes. 2019-05-04 22:35:49 +02:00
Pieter-Jan Briers f249c19eaf Fix a couple warnings. 2019-04-29 13:12:50 +02:00
Pieter-Jan Briers 77d92675e2 Fix player attachment events. 2019-04-29 12:53:09 +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
Pieter-Jan Briers 66621de270 Fix being unable to focus chat with hotkey. 2019-04-22 16:52:08 +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
Pieter-Jan Briers 3e1f7d6d92 Fix compiler warnings. 2019-04-19 23:44:28 +02:00
Silver a18692bc46 Rename toolbox references from ss14 to robust 2019-04-15 21:11:38 -06:00
Acruid b1c81ed6e6 Entity Interpolation (#197)
* Frame interpolation kinda works.

* Added null CurState check because it can be null now.

* Merge remote-tracking branch 'upstream/master' into dev-GameState
2019-04-13 09:46:27 +02: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
Acruid 9d7345892f
Fixes Breaking Change with UI windows. (#192)
* Custom UI window constructors were changed.

* Update Submodule.
2019-04-12 21:37:09 -07:00
Pieter-Jan Briers c283634efb
Make examine use tooltips. (#189)
FANCY.
2019-04-09 17:33:53 +02:00
Pieter-Jan Briers 8c7e7e5510 Update submodule, implement style for Tree. 2019-04-08 18:58:16 +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
Víctor Aguilera Puerto 9f1dd9f876 ItemList style. (#183) 2019-04-06 17:07:43 +02:00
Víctor Aguilera Puerto 0deaa483dd Ignore server-side components. (#185) 2019-04-06 13:41:09 +02:00
Pieter-Jan Briers 85241a7dce Update submodule. Switch to EncodingHelpers.UTF8 2019-04-05 02:04:09 +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
Pieter-Jan Briers b94e015314 Style UI tooltips. 2019-04-01 20:05:45 +02:00
Pieter-Jan Briers eef0db6001 Change main menu button font. 2019-04-01 15:53:50 +02:00
Pieter-Jan Briers 2bfb03cd29 Update submodule, unfuck scripts, clean up solution file. 2019-03-30 23:20:50 +01:00
clusterfack e381920e86 Fix Species UI Overlay Removal (#173)
Soooo nameof turns a variable into a string of that variable. I'm not sure where I copied that from but ID is the proper value.
2019-03-30 12:40:15 +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 880d4b7249 Improved icon smoothing to use ECS properly, cables smooth now. 2019-03-28 11:14:03 +01:00
Pieter-Jan Briers 575b12dcdc Use SharedSpeciesComponent on the client. 2019-03-27 17:12: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 0882435293
Fancy guns. (#152) 2019-03-23 15:04:14 +01:00
Pieter-Jan Briers c27be2bf95 Fix mousedown on handsgui. 2019-03-22 21:46:51 +01:00
Pieter-Jan Briers 4ba8848383 Add notify debug command. 2019-03-21 18:03:05 +01:00
Pieter-Jan Briers d5559e44bb Airlocks get opening sounds now. 2019-03-20 00:42:52 +01:00
Pieter-Jan Briers 5e7b03d251 Make content use SWSL shaders. 2019-03-18 23:54:58 +01:00
Pieter-Jan Briers 83147922f4 Remove gun debug logging. 2019-03-17 16:08:14 +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 6c66817502 Fix EntityButton not inheriting correct type. 2019-03-17 14:37:18 +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 1b3d3debc1 Fix client inventory not inheriting the correct controls.
Fixes it on Clyde.
2019-03-16 18:14:23 +01:00
Pieter-Jan Briers da3a7e47e3 Make HandsGui work on Clyde. 2019-03-15 19:07:29 +01:00
Pieter-Jan Briers 43c0b512bd CheckBox styling. 2019-03-11 11:55:29 +01:00
Pieter-Jan Briers 2234641e4a Update submodule and styling 2019-03-11 09:07:56 +01:00
Pieter-Jan Briers 0bcb6adf6a New styling for various new controls. 2019-03-05 09:39:20 +01:00
Pieter-Jan Briers 5436d6831e Change theming now that the font system isn't unstable. 2019-02-24 16:14:36 +01:00
Pieter-Jan Briers 7664fcf1f4 Add helpers to load textures and fonts. 2019-02-24 16:14:19 +01:00
Pieter-Jan Briers 1ee556091c Make default font Noto Sans 12. 2019-02-24 15:55:23 +01:00
Pieter-Jan Briers eee4b64c64 Make LineEdit not ugly as hell. 2019-02-23 16:35:51 +01:00
Pieter-Jan Briers 20846ef446 Fix various compiler warnings. 2019-02-21 22:01:13 +01:00
Pieter-Jan Briers fd9db21ad7 Update submodule. 2019-02-21 18:13:37 +01:00
Pieter-Jan Briers 3516392f06 NanoStyle v1 2019-02-18 09:16:06 +01:00
Pieter-Jan Briers f628fb3fd2 Give Parallax texture a name. 2019-02-11 19:14:37 +01:00
Pieter-Jan Briers 1116a0a647 Update submodule and ImageSharp. 2019-02-11 19:14:29 +01:00
Pieter-Jan Briers 54cc252bd7 Remove direct references to IOverlay.
I've removed it in the OpenGL branch due to being kinda a bad idea.
Overlay as an abstract is a much better one.
2019-01-23 15:31:18 +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 0e51d98c85 Fix PowerCell component not being ignored 2019-01-17 20:53:14 +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
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 b8becf4a56 Remove use of CRCs to bypass bullshit. 2018-12-03 16:55:00 +01:00
Pieter-Jan Briers ef3007a603
Parallax (#131) 2018-11-30 21:54:30 +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 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 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
Acruid fc7493e149
Namespace Compatibility changes. (#114) 2018-10-25 17:40:48 -07: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
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 2b026daf67 Make character inventory slightly nicer. 2018-09-19 19:06:30 +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 2dd3f24fb2
Make Y+ up. (#109) 2018-09-17 10:46:38 +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
PJB3005 06ea07eca5 Use Godot-accessible Resources folder.
Fixes #62
2018-08-31 10:49:48 +02:00
Pieter-Jan Briers d414ea55f5
APC GUI. (#107) 2018-08-31 08:52:48 +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
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
PJB3005 fe1252cca7 Why did I write sbyte there..? 2018-08-12 12:01:44 +02:00
Pieter-Jan Briers 7b3fcb1d54 Fix missing component errors on the client. 2018-08-09 22:50:05 +02:00
Pieter-Jan Briers fa594fb3e9
Smoothwalling. (#91) 2018-08-09 20:22:54 +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 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
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
Pieter-Jan Briers 097c876578 More data in power debug tool. 2018-05-30 14:23:08 +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 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 205a4fc530
Fixes server shutdown crash & client error log spam. (#67) 2018-05-10 18:52:44 +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
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 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
DamianX 63b5d83728 Fixed crash when pressing BACK in lobby (#46)
* Fixed crash when pressing BACK in lobby

* that's true
2018-03-24 16:54:13 +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
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 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
clusterfack 2eb30c9ba9
Update submodule (#28)
* Update submodule

* Fix disco ball
2018-02-02 19:33:50 -06: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 68f4fd995e Update submodule, fix HandsGui.
HandsGui now works with the new system. The port was sloppy though so
somebody might want to come and refactor this so that it doesn't force
its own position and size.
2017-11-13 19:48:21 +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
PJB3005 de4583d14b Fix compile from removal of SFML. 2017-10-20 20:55:59 +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 4f2d059de4 Simple network replication for hands, untested. 2017-09-26 21:27:48 +02:00
PJB3005 a464acf354 Ignore item and inventory client side. 2017-09-26 19:59:31 +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 7add727db0 Disco Ball prototype 2017-08-22 23:48:51 +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