* Now the name of the target craft items is taken directly from the prototypes
* Deleting unnecessary fields
* Deleting unnecessary fields
* Added suffix field
* Added override via localization keys
* My favorite ItemList and TextureRect have been replaced with ListContainer and EntityPrototypeView
* Fix suffix
* Fix construction ghosts... maybe
* Remove suffix from UI
* Suffixes have been removed from prototypes
* Added a description for the secret door
* Fix search..?
* The Icon field of ConstructionPrototype has been removed
* StackPrototypes used in the construction menu have been localized
* TagConstructionGraphStep used in the construction menu have been localized
* The search bar has been localized
* Fix localization and prototypes
* Recipes are now only loaded when the crafting window is opened.
* Fix crooked merge grid of the crafting menu.
* Localization update
* Fix cyborg graph
* Revert "Recipes are now only loaded when the crafting window is opened."
This reverts commit 97749483542c2d6272bda16edf49612c69a0761a.
* Fix loc
* fix merge
* Fix upstream
* Some of the logic has been moved to Shared
* fix
* Small adjustments
* Very small change
---------
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
If our current ID is different to the received one we should just discard it even if it's for the same entity.
Note that this doesn't quite fix my prediction issue as client and server are using slightly different timings for the event.
* feat: node scanner now auto-updates artifact details if in range
* refactor: minor cleanup
* refactor: optimization for update and query of range checking
* refactor: fix xml-doc
---------
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
* 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.
While trying to play a replay I noticed that the replay would freeze
when seeking in some cases. After some debugging, I discovered that two
MIDI renderers had each other as master, which caused an infinite loop
processing MIDI events.
I'm not entirely sure of the sequence of events that leads to this
during replay playback, but I did notice that MIDI render masters are
never set to null. This is in the best case just a memory leak, in the
worst case probably the source of the bug, so... I fixed that.
* Fix disposal unit flush animation
* Revert "Fix disposal unit flush animation"
This reverts commit a596ecfd5f5368f87ef52cfb27884a8e000185c6.
* control by setting layer visibility rather than overwriting
* restore changes
* new patchMargin variable added, horizontals fixed
* All sides now work, system is fully integarated
---------
Co-authored-by: Zachary Yona <magicalusf@gmail.com>
So:
- Shared examine like armour, adds the button incorrectly and mispredicts it.
- Server-only like damage, doesn't add it (correct) and no mispredict.
We'll just prune any verbs if the server sends them in unless the verb is client-only and it should fix it unless there's client-side code not flagging it as clientexclusive.
* Predict dumping
- This got soaped really fucking hard.
- Dumping is predicted, this required disposals to be predicte.d
- Disposals required mailing (because it's tightly coupled), and a smidge of other content systems.
- I also had to fix a compnetworkgenerator issue at the same time so it wouldn't mispredict.
* Fix a bunch of stuff
* nasty merge
* Some reviews
* Some more reviews while I stash
* Fix merge
* Fix merge
* Half of review
* Review
* re(h)f
* lizards
* feexes
* feex
* Refactor disarms
- Move client stuff to shared
- Cleanup a bunch of stuff
- Ref events
- Fix the swing sound mispredict (I noticed it on target dummies).
* Revert this change
* minor review
* Rebiew
---------
Co-authored-by: Milon <milonpl.git@proton.me>
* Material Silo
* fix board, fix copyright
* a bit of review.... for the vibe....
* a tiny bit of review
* 4 spaced
* sloths no good very tiny nitpick
* fix ui flickers
* oops
* slightly lower range
* Sloth Review
---------
Co-authored-by: ScarKy0 <scarky0@onet.eu>
* Implement client-side theming for OutputPanel scroll-down button.
* Use OutputPanel constant for button class name
* Remove unused string
* Enable scroll button for ChatBox
* Update RobustToolbox
* Update to merged RT version
feat: now RCD can have recepies that are placed on the top level of radial menu - 'Main' category name is reserved for this
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
* fixed prediction (hopefully), removed caching of prototype, sealed the class, removed any and count
* erroneus using statement
* removed unused timing, removed obsolete method of getting gridUid
* nuked mapgriddata
* code cleanup
* cleanup
* this has to be a string without me rewriting more code than i want to in this moment
* kill
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>