* 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
* 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
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
* 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
* 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
* 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.
* 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.
* 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.
* 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
* 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
- 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
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.
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.
* 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.
* 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.
* 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.
* 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.
* 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?
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.
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.
~~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#145resolves#158
related to #115
-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.
* 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
* 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
* 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
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.
* 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.
* 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.
* Renamed ICollisionManager to IPhysicsManager.
* Added sanitization and logging for clients sending invalid coordinates to the interaction system.
* Update Engine.
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.
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.
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.
* 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
* 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
* Updates for the netcode refactor.
* Change HandsGui to control.
Why? No idea but drawing of it works again.
* Fix hand change sync.
* Update submodule
* 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.
* 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.
* 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
* 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
* 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
* 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
* 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.
* 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.
* 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
* 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
* 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
* 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
* 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
* Doors WiP
* Kinda seem to work now?
* Finished
* Oh yeah maybe enable that.
* It works except it doesn't
* Undo formatting changes
* BuildChecker too
* Add prototype for temperature testing entity.
* Add Damageable, Destructible, Temperature. Add a prototype based on those.
* Works and cleaned up.
* Nerf