* Add unanchor attempt check
* Combine shared component and server component
- Combines SharedGravityGeneratorComponent and GravityGeneratorComponent
- AutoNetworked the GravityActiveBool
* Remove SharedGravityGeneratorComponent
* Update to SharedGravityGeneratorComponent
* Fix to be a complete sentence
* Dirty GravityActive whenever changed
* Rename component and remove view variables
* Update referenced component name
* Move unanchor attempt to shared system
* Add client system
* Revert popup to PopupEntity
* Fix popup to be PopupClient
* Set access restriction on GravityActive
* Clean up TitleWindowManager.cs
- I did not like how `OnHostnameChange()` always needed a string even though that string would always just be the hostname, so now it's just part of its function
- The extra function made to just trigger `OnHostnameChange()` are removed. It just runs the right function off the bat.
- Checking for `ClientRunLevel.InGame` for setting the title without the hostname, which means the previous joined server won't appear for a split second before being corrected by the new cvars being set. Or if the server prefers no host name in the titlebar by the time we connect.
* review
* Sus
* grass touch protocol - Rebases to latest master to fix conflicts
* aight local tests are passing lets see if our golf works
* It is 5 am and our ass COMPLETELY overcomplicated this lmaooo
* Addresses feedback - Clarifies comments, swaps internal var names for grasstouchless and selfdestructive, makes the third tier a little less demanding, and fixes 1 hours
* Addresses review - conflict fix
* This too
* Axes playtime exclusion for ghosts
* Use switch expression
code style nit
* Refactor/cleanup
Use IGameTiming.RealTime to track time instead of DateTime. Use nullable instead of magic values.
Expose the current day value through a property that is always up to date, instead of making the API to read the CVar that updates at inconsistent times. This also makes it trivial to debug with VV.
Other minor cleanup like using string interp, code style fixes, comments, etc.
---------
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
* Split codewords into its own system
* Fix admin log
* Nuke unused code
* Fix formatting errors
* Fix tests
* Make the codeword system add itself if called when not active
* Put comment in right place.
* Review: Rename prototypes
* Review: Make codewords serializable
* Fix build
* Reviews: Change the system to not be a gamerule.
* Fix YAML Linter
* Fix test fail
* Remove unused import
* Add ENERGYWATTHOURS() loc function
Takes in joules (energy), displays as watt-hours.
* Add simple OnOffButton control
* Re-add Inset style class
This was sloppily removed at some point?? Whatever, I need it.
* Add helper functions for setting title/guidebook IDs on FancyWindow
Reagent dispenser uses these, more in the next commits.
* Add BuiPredictionState helper
This enables me to implement coarse prediction manually in the battery UI.
Basically it's a local buffer of predicted inputs that can easily be replayed against future BUI states from the server.
* Add input coalescing infrastructure
I ran into the following problem: Robust's Slider control absolutely *spams* input events, to such a degree that it actually causes issues for the networking layer if directly passed through. For something like a slider, we just need to send the most recent value.
There is no good way for us to handle this in the control itself, as it *really* needs to happen in PreEngine. For simplicity reasons (for BUIs) I came to the conclusion it's best if it's there, as it's *before* any new states from the server can be applied. We can't just do this in Update() or something on the control as the timing just doesn't line up.
I made a content system, BuiPreTickUpdateSystem, that runs in the ModRunLevel.PreEngine phase to achieve this. It runs a method on a new IBuiPreTickUpdate interface on all open BUIs. They can then implement their own coalescing logic.
In the simplest case, this coalescing logic can just be "save the last value, and if we have any new value since the last update, send an input event." This is what the new InputCoalescer<T> type is for.
Adding new coalescing logic should be possible in the future, of course. It's all just small helpers.
* Battery interface
This adds a proper interface to batteries (SMES/substation). Players can turn IO on and off, and they can change charge and discharge rate. There's also a ton of numbers and stuff. It looks great.
This actually enables charge and discharge rates to be changed for these devices. The settings for both have been set between 5kW and 150kW.
* Oops, forgot to remove these style class defs.
* Beginnings of making the breadmemes jobs easier
* stuff
* stuff pt. 2
* Stuff pt.3
* Stuff I forgot last time
* Basic whitelist
Only people that are added to the whitelist with the addwhitelist command will be able to join. I call this the "legacy" whitelist
* Remove always deny condition in favor of just breaking if playtime check fails
* Change default whitelist
Default whitelist is now the "legacy" whitelist.
* localization
* Admin check
* minor spelling change
* Fix build
* Whitelist message
* Fix vars not being datafield and spelling mistakes
* Minor spelling mistake
* Change config for salamander
* Reviews and stuff
* Add summaries
* Fix whitelists
* Forgot to add a datafield
* Fixing stuff I guess
* Reuse admin remarks to reduce load when connecting.
* Update log messages to be verbose instead of debug
* Reviews
* whoops
* Explain a bit more how whitelist checking works
* Apply CE's review
* Append Membership to Blacklist and Whitelist conditions
* Fix review comments
* Uncapitalize playerConnectionWhitelist, add to ignored client prototypes
* Make note count field work
* Fix cvar for thingy
---------
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
The F3 coords manager is blocked if you're not an admin. This check happened even when playing a replay, where you actually aren't. There's now a check to make sure you are actually server-connected-to-game before running the logic.
Also moved it to a manager because this *shouldn't be a bloody entity system in the first place*.
* Vox stuff
* Species loadouts and lobby refactor
The control flow for lobby is all over the shop so I pulled it all up from the individual controls so now they handle the bare minimum required and LobbyUIController handles the rest.
* a
* Bulk changes
* a
* weh
* Character import / export
* finalise
* woops this stuff too
* Also datafield exporting
* comments
* Review
* Separated "thank you" messages from general ads
* Moved MessagePackPrototype to shared, cleaned up AdvertiseComponent, and actually killed AdvertisementsPackPrototype.
+More suggests changes.
* Rename PackPrototypeID to Pack in both components.
* move faction prototype to shared
* move faction exception and member stuff to shared
* fix breaking changes for random stuff
* move pettable friend stuff to shared
* mostly fix
* final fixy
* dragonops
* final fixy II
* use querys and fix warpspeed fish (probably)
* fixer
* Rrrr!
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Fix some bugs in stations and do a little cleanup.
* Begin backporting the guidebook.
* wow that's a lot of work.
* More work, gives the monkey some more interactions.
* disco monkye.
* monky
* jobs entry.
* more writing.
* disco
* im being harassed
* fix spacing.
* i hate writing.
* Update Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* builds again
* a
* pilfer changes from AL
* fix and remove unused code
* pilfer actual guide changes from AL
* localization
* more error logs & safety checks
* replace controls button with command
* add test
* todos
* pidgin parsing
* remove old parser
* Move files and change tree sorting
* add localization and public methods.
* Add help component/verb
* rename ITag to IDocumentTag
* Fix yml and tweak tooltips
* autoclose tooltip
* Split container
* Fancier-tree
* Hover color
* txt to xml
* oops
* Curse you hidden merge conflicts
* Rename parsing manager
* Stricter arg parsing
tag args must now be of the form key="value"
* Change default args
* Moar tests
* nullable enable
* Even fancier tree
* extremely fancy trees
* better indent icons
* stricter xml and subheadings
* tweak embed margin
* Fix parsing bugs
* quick fixes.
* spain.
* ogh
* hn bmvdsyc
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
* lathe and material storage refactor
* materialStorage ECS
it kinda sus tho
* beginning the lathe shitcode dive
* couple lathe visuals and lathe system
* lathe changes and such
* dynamic lathe databases
* rewrote internal logic
on to ui
* da newI
* material display clientside
* misc ui changes
* component state handling and various other things
* moar
* Update Content.Shared/Lathe/LatheComponent.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* first volley of sloth review
* more fixes
* losin' my mind
* all da changes
* test fix and other review
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>